본문 바로가기

Study22

주문 개발 3 (OrderService- 주문 개발) 주문에 대한 서비스를 만드는 작업은 일단 Service 디렉토리 밑에 OrderService 클래스를 생성시켜준다. 그리고 OrderRepository, MemberRepository, ItemRepository 를 인젝션 받아준다. private final OrderRepository orderRepository; private final MemberRepository memberRepository; private final ItemRepository itemRepository; 첫번째로 주문에 대한 메서드를 만든다. @Transactional public Long order(Long memberId,Long itemId, int count){ //엔티티 조회 Member member = memberR.. 2022. 7. 15.
주문 개발 2 (Order- 주문 개발) 일단 Order 엔티티에 코드를 추가해준다. //생성 메서드 // public static Order createOrder (Member member, Delivery delivery, OrderItem... orderItems){ Order order = new Order(); order.setMember(member); order.setDelivery(delivery); for(OrderItem orderItem : orderItems){ order.addOrderItem(orderItem); } order.setStatus(OrderStatus.ORDER); order.setOrderDate(LocalDateTime.now()); return order; } //비즈니스 로직// /** * 주문 취.. 2022. 7. 14.
주문 개발 1 (Item - 상품 개발) 이제 핵심로직인 주문을 개발한다. 제일처음으로 한 것은 Item 엔티티에 재고 증가와 재고 감소에 대한 메서드를 만들어주는 것이다. - 재고 증가 public void addStock(int quantity){ this.stockQuantity += quantity; } - 재고 감소 public void removeStock(int quantity){ int restStock = this.stockQuantity - quantity; if(restStock < 0){ throw new NotEnoughStockException("need more stock"); } this.stockQuantity = restStock; } 재고 증가와 재고 감소는 현재 객체로 받은 재고에서 변동이 생기는 quanti.. 2022. 7. 14.
회원 기능 테스트 1 .디렉토리 생성 test 디렉토리 밑에 service라는 디렉토리를 생성한 뒤 MemberServiceTest 클래스를 생성한다. 2. 코드 작성 1. 어노테이션 - @RunWith(SpringRunner.class) : Junit 실행 시 Spring 도 같이 실행을 하겠다는 어노테이션 - @SpringBootTest : 스프링 컨테이너 안에서 테스트를 돌린다. - @Transactional : 하나의 쿼리로 진행하여 테스트가 끝난 후 롤백을 진행하게 된다. 2. 회원가입 테스트 - @Transactional 의 사용으로 자동으로 Rollback이 되어 Insert 쿼리가 날라가지 않는다. - @Rollback(false) - 테스트 코드는 기본적으로 Rollback 을 진행한다. - Rollbac.. 2022. 7. 12.