Skip to content

Commit

Permalink
#4 Add MemberCartDelete
Browse files Browse the repository at this point in the history
  • Loading branch information
pursue503 committed Jul 23, 2020
1 parent c5ffbb2 commit 8e3fb94
Show file tree
Hide file tree
Showing 7 changed files with 92 additions and 49 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Slf4j
@RequiredArgsConstructor
Expand All @@ -35,6 +36,16 @@ public String memberCartProductCountUpdate(CartProductCountUpdateRequestVO updat
}
}

@DeleteMapping("/cart")
public String memberCartDelete(@RequestParam("cartNo") Long cartNo, Authentication authentication) {

try{
cartService.memberCartDelete(cartNo,authentication);
return "redirect:/cart";
} catch (NullPointerException e) {
return "error";
}

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ public interface CartRepositoryCustom {

List<MemberCartResponseVO> findByMemberCart(Member memberEntity);

Cart findByCartNoAndMemberId(Long cartNo, Member member);

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.memoryboost.domain.entity.cart;

import com.memoryboost.domain.entity.member.Member;
import com.memoryboost.domain.entity.member.QMember;
import com.memoryboost.domain.entity.product.QProduct;
import com.memoryboost.domain.vo.cart.response.MemberCartResponseVO;
import com.querydsl.core.types.Projections;
Expand All @@ -25,4 +24,11 @@ public List<MemberCartResponseVO> findByMemberCart(Member memberEntity) {
.from(cart).leftJoin(product).on(cart.product.eq(product))
.where(cart.member.eq(memberEntity)).fetch();
}

@Override
public Cart findByCartNoAndMemberId(Long cartNo, Member member) {
QCart cart = QCart.cart;

return queryFactory.selectFrom(cart).where(cart.cartNo.eq(cartNo).and(cart.member.eq(member))).fetchOne();
}
}
13 changes: 13 additions & 0 deletions src/main/java/com/memoryboost/service/cart/CartService.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,18 @@ public void cartCountUpdate(CartProductCountUpdateRequestVO updateRequestVO) {
cart.cartProductCountUpdate(updateRequestVO);
}

@Transactional
public void memberCartDelete(Long cartNo, Authentication authentication) {

MemberCustomVO memberCustomVO = (MemberCustomVO) authentication.getPrincipal();
Member member = memberRepository.findById(memberCustomVO.getMemberId()).orElseThrow(NullPointerException::new);

Cart cart = cartRepository.findByCartNoAndMemberId(cartNo,member);

cartRepository.delete(cart);


}


}
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@
import com.memoryboost.domain.entity.product.ProductRepository;
import com.memoryboost.domain.vo.cart.response.MemberCartResponseVO;
import lombok.extern.slf4j.Slf4j;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.*;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
Expand All @@ -33,8 +31,16 @@ public class CartRepositoryTest {
@Autowired
private MemberRepository memberRepository;

@Before
public void before(){
@After
public void after(){
cartRepository.deleteAll();
memberRepository.deleteAll();
productRepository.deleteAll();
}

@Test
public void memberCartTest() {

Product product = productRepository.save(Product.builder().productName("갤럭시 GALAX 지포스 RTX 2070 SUPER EX OC D6 8GB PINK Edition").
productCategory(1)
.productThumbnail("썸네일경로")
Expand All @@ -52,23 +58,37 @@ public void before(){
memberTel("010-0000-0000").
memberAuth(Role.USER).build());
cartRepository.save(Cart.builder().product(product).member(member).productCnt(5).build());
}

@After
public void after(){
cartRepository.deleteAll();
memberRepository.deleteAll();
productRepository.deleteAll();
List<MemberCartResponseVO> memberCartResponseVOList = cartRepository.findByMemberCart(member);

assertThat("썸네일경로").isEqualTo(memberCartResponseVOList.get(0).getProductThumbnail());

}

@Test
public void memberCartTest() {
public void findByCartNoAndMemberIdTest() {

Member member = memberRepository.findById(1L).orElseThrow(NullPointerException::new);
List<MemberCartResponseVO> memberCartResponseVOList = cartRepository.findByMemberCart(member);

assertThat("썸네일경로").isEqualTo(memberCartResponseVOList.get(0).getProductThumbnail());
Product product = productRepository.save(Product.builder().productName("갤럭시 GALAX 지포스 RTX 2070 SUPER EX OC D6 8GB PINK Edition").
productCategory(1)
.productThumbnail("썸네일경로")
.productDescription("설명")
.productPrice(600000)
.build());

Member member = memberRepository.save(Member.builder().memberLoginId("abc1234").memberPw("aaa1111").
memberName("홍길동").
memberEmail("abc1234@naver.com").
memberSns("memoryboost").
memberZipCode("08080").
memberAddress("서울특별시").
memberDetailAddress("종로구댕댕댕").
memberTel("010-0000-0000").
memberAuth(Role.USER).build());
Cart cartEntity = cartRepository.save(Cart.builder().product(product).member(member).productCnt(5).build());

Cart cart = cartRepository.findByCartNoAndMemberId(cartEntity.getCartNo(), member);
assertThat(cartEntity.getCartNo()).isEqualTo(cart.getCartNo());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,16 @@ public class ProductReviewRepositoryTest {
@Autowired
private JPAQueryFactory queryFactory;

@Before
public void before() {
@After
public void after(){
productReviewRepository.deleteAll();
memberRepository.deleteAll();
productRepository.deleteAll();
}

@Test
public void findByProductDetailReviewTest(){

Product product = productRepository.save(Product.builder().productName("갤럭시 GALAX 지포스 RTX 2070 SUPER EX OC D6 8GB PINK Edition").
productCategory(1)
.productThumbnail("주소~")
Expand All @@ -57,20 +65,6 @@ public void before() {
memberAuth(Role.USER).build());
productReviewRepository.save(ProductReview.builder().memberId(member).productNo(product).reviewTitle("타이틀").
reviewContent("내용").reviewGrade(5).build());
}

@After
public void after(){
productReviewRepository.deleteAll();
memberRepository.deleteAll();
productRepository.deleteAll();
}

@Test
public void findByProductDetailReviewTest(){


Product product = productRepository.findById(1L).orElseThrow(NullPointerException::new);

int page = 1;

Expand Down
31 changes: 14 additions & 17 deletions src/test/java/com/memoryboost/service/CartServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,16 @@ public class CartServiceTest {
@Autowired
private MemberRepository memberRepository;

@Before
public void before(){
@After
public void after(){
cartRepository.deleteAll();
memberRepository.deleteAll();
productRepository.deleteAll();
}

@Test
public void memberCartProductCountUpdateTests(){

Product product = productRepository.save(Product.builder().productName("갤럭시 GALAX 지포스 RTX 2070 SUPER EX OC D6 8GB PINK Edition").
productCategory(1)
.productThumbnail("썸네일경로")
Expand All @@ -55,30 +63,19 @@ public void before(){
memberDetailAddress("종로구댕댕댕").
memberTel("010-0000-0000").
memberAuth(Role.USER).build());
cartRepository.save(Cart.builder().product(product).member(member).productCnt(5).build());
}

@After
public void after(){
cartRepository.deleteAll();
memberRepository.deleteAll();
productRepository.deleteAll();
}

@Test
public void memberCartProductCountUpdateTests(){
Cart cart = cartRepository.save(Cart.builder().product(product).member(member).productCnt(5).build());

int count = 10;

CartProductCountUpdateRequestVO cartProductCountUpdateRequestVO = new CartProductCountUpdateRequestVO();
cartProductCountUpdateRequestVO.setCartNo(1L);
cartProductCountUpdateRequestVO.setCartNo(cart.getCartNo());
cartProductCountUpdateRequestVO.setProductCnt(count);

cartService.cartCountUpdate(cartProductCountUpdateRequestVO);

Cart cart = cartRepository.findById(1L).orElseThrow(NullPointerException::new);
Cart resultCart = cartRepository.findById(cart.getCartNo()).orElseThrow(NullPointerException::new);

assertThat(count).isEqualTo(cart.getProductCnt());
assertThat(count).isEqualTo(resultCart.getProductCnt());
}

}

0 comments on commit 8e3fb94

Please sign in to comment.