3.실습코드테스트 - architectstory/MSA_REF_PATTERN_CQRS GitHub Wiki

Test 목표

(1) Command 서비스의 Swagger에서

  • Create를 하고
  • EVENT_STORE_DB 테이블에 Create 정보 생성 확인
  • MongoDB를 통해 Query Model 데이타 생성 확인
  • Update도 Create와 동일하게 테스트

(2) Query 서비스의 Swagger를 통해 MongoDB에 생성된 데이터를 확인

(3) Delete의 경우는 EVENT_STORE_DB에는 Data가 존재하지만 MongoDB에는 삭제


Command 서비스 : 8081 포트 사용
Query 서비스 : 8082 포트 사용

Test Script 작성

  • Test script "test-cqrs.bat"
@echo off
start msedge http://localhost:8081/swagger-ui.html
start msedge http://localhost:8081/h2console
start msedge http://localhost:8082/swagger-ui.html

Kafka 실행

  1. start-zookeeper.bat 실행
  2. start-kafka.bat 실행

서비스 실행

  • 서비스 실행 전에 gradle을 이용해서 build 하기 (Build하기 전에 clean을 해준다) Intellij에서
  1. Order Command 서비스 실행 MSA_REF_BIZ_ORDER_COMMAND 모듈 /src/main/java 하위의 MsaRefBizOrderCommandApplication.class를 선택하고 마우스 오른쪽 버튼을 클릭하여 Run 선택

  2. Order Query 서비스 실행 MSA_REF_BIZ_ORDER_QUERY 모듈 /src/main/java 하위의 MsaRefBizOrderQueryApplication.class를 선택하고 마우스 오른쪽 버튼을 클릭하여 Run 선택

Test 창 실행

  • test-cqrs.bat 실행

(1) Swagger를 활용한 Data 생성

  • Post에서 Order 데이터를 생성
    • 우측의 "Try it Out" 버튼 클릭
{
  "id": "1",
  "origin": "ORDER",
  "type": "Coffee",
  "count": 10,
  "cost": 1500
}
  • "Execute" 버튼 클릭

Data 확인

  1. EVENT_STORE_DB Table의 Data 생성 확인

    • http://localhost:8081/h2console

    • JDBC URL : jdbc:h2:mem:MSA;DB_CLOSE_DELAY=-1;LOCK_TIMEOUT=2500;AUTOCOMMIT=OFF;DATABASE_TO_UPPER=true;

    • "connect" 클릭 image

    • EVENT_STORE_DB 확인

  2. MongoDB 확인 MongoDB 실행 후 중앙의 Connect 버튼 클릭 image

    왼쪽 메뉴의 MSA_READ_DB 하위의 ORDER 클릭 image

    생성된 데이터 확인

  3. API를 통한 Data 확인 image

(2) Swagger를 활용한 Data 수정

  • Put 에서 Order 데이터를 수정
    • 상단의 Post에서 Order의 Id 복사 image

    • 우측의 "Try it Out" 버튼 클릭 id 값에 복사한 값을 붙여 넣은 후

{
  "id": "1",
  "origin": "ORDER",
  "type": "ICE-CREAM",
  "count": 2,
  "cost": 3000
}
  • "Execute" 버튼 클릭

Data 확인

  1. EVENT_STORE_DB Table의 Data 생성 확인

  2. MongoDB 확인 MongoDB 실행 후 중앙의 Connect 버튼 클릭 image

    왼쪽 메뉴의 MSA_READ_DB 하위의 ORDER 클릭 image

    수정된 데이터 확인

(3) Swagger를 활용한 Data 삭제

  • DELETE 에서 Order 데이터를 삭제
    • 하단의 Post에서 Order의 Id 복사
    • 우측의 "Try it Out" 버튼 클릭 id 값에 복사한 값을 붙여 넣은 후 image
{
  "id": "1"
}
  • "Execute" 버튼 클릭

Data 확인

  1. EVENT_STORE_DB Table의 Data 생성 확인

  2. MongoDB 확인 MongoDB 실행 후 중앙의 Connect 버튼 클릭 image

    왼쪽 메뉴의 MSA_READ_DB 하위의 ORDER 클릭 image

    데이터를 삭제 하였기 때문에 해당 데이터는 존재하지 않음