From 5948cceaf8fc86d75e34b85d241cbb08e828b3d0 Mon Sep 17 00:00:00 2001 From: EuichanJeong <dmlcks5791@ajou.ac.kr> Date: Wed, 2 Apr 2025 16:16:46 +0900 Subject: [PATCH] add test --- .../demo/repository/ItemRepository.java | 7 ++ .../demo/repository/ItemRepositoryTest.java | 100 +++++++++++++++--- 2 files changed, 94 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/example/demo/repository/ItemRepository.java b/src/main/java/com/example/demo/repository/ItemRepository.java index 01bcca8..8767608 100644 --- a/src/main/java/com/example/demo/repository/ItemRepository.java +++ b/src/main/java/com/example/demo/repository/ItemRepository.java @@ -11,5 +11,12 @@ import com.example.demo.entity.Item; // @NoRepositoryBean public interface ItemRepository extends JpaRepository<Item, Long>{ + List<Item> findByItemNm(String itemNm); + List<Item> findByItemNmOrItemDetail(String itemNm, String itemDetail); + List<Item> findByPriceLessThan(Integer price); + List<Item> findByPriceLessThanOrderByPriceDesc(Integer price); + @Query("select i from Item i where i.itemDetail like %:itemDetail% order by i.price desc") + List<Item> findByItemDetail(@Param("itemDetail") String itemDetail); + } diff --git a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java index 0000ba4..6b56585 100644 --- a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java +++ b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java @@ -6,6 +6,8 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.TestPropertySource; import com.example.demo.entity.Item; import com.example.demo.entity.QItem; + +//import com.example.demo.entity.QItem; import org.junit.jupiter.api.DisplayName; import java.time.LocalDateTime; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -26,20 +28,92 @@ public class ItemRepositoryTest { @Autowired ItemRepository itemRepository; + @PersistenceContext + EntityManager em; + + public void createItemList(){ + + for (int i = 0; i <= 10; i++) + { + Item item = new Item(); + item.setItemNm(("테스트 상품") + i); + item.setPrice(10000 + i); + item.setItemDetail("테스트 상품 상세 설명" + i); + item.setItemSellStatus(ItemSellStatus.SELL); + item.setStockNumber(100); + item.setRegTime(LocalDateTime.now()); + item.setUpdateTime(LocalDateTime.now()); + Item savedItem = itemRepository.save(item); + } + } + + @Test + @DisplayName("상품명 조회 테스트") + public void findByItemNmTest() { + this.createItemList(); + List<Item> itemList = itemRepository.findByItemNm("테스트 상품1"); + for (Item item : itemList) { + System.out.println(item.toString()); + } + } + + @Test + @DisplayName("상품명, 상품상세 설명 OR 테스트") + public void findByItemNmOrItemDetailTest() { + this.createItemList(); + List<Item> itemList = itemRepository.findByItemNmOrItemDetail("테스트 상품1", "테스트 상품 상세 설명5"); + for (Item item : itemList) { + System.out.println(item.toString()); + } + } + @Test - @DisplayName("상품 저장 테스트") - public void createItemTest(){ - Item item = new Item(); - item.setItemNm("테스트 상품"); - item.setPrice(100000); - item.setItemDetail("테스트 상품 상세 설명"); - item.setStockNumber(100); - item.setRegTime(LocalDateTime.now()); - item.setUpdateTime(LocalDateTime.now()); - - Item savedItem = itemRepository.save(item); - System.out.println(savedItem.toString()); + @DisplayName("가격 LessThan 테스트") + public void findByPriceLessThanTest() { + this.createItemList(); + List<Item> itemList = itemRepository.findByPriceLessThan(10005); + for (Item item : itemList) { + System.out.println(item.toString()); + } + } + + @Test + @DisplayName("가격 내람차순 조회 테스트") + public void findByPriceLessThanOrderByPriceDesc() { + this.createItemList(); + List<Item> itemList = itemRepository.findByPriceLessThanOrderByPriceDesc(10005); + for (Item item : itemList) { + System.out.println(item.toString()); + } + } + + @Test + @DisplayName("@Query를 이용한 상품 조회 테스트") + public void findByItemDetailTest(){ + this.createItemList(); + List<Item> itemList = itemRepository.findByItemDetail("테스트 상품 상세 설명"); + for(Item item : itemList){ + System.out.println(item.toString()); + } + } + + @Test + @DisplayName("Querydsl 조회테스트1") + public void queryDslTest(){ + this.createItemList(); + JPAQueryFactory queryFactory = new JPAQueryFactory(em); + QItem qItem = QItem.item; + JPAQuery<Item> query = queryFactory.selectFrom(qItem) + .where(qItem.itemSellStatus.eq(ItemSellStatus.SELL)) + .where(qItem.itemDetail.like("%" + "테스트 상품 상세 설명" + "%")) + .orderBy(qItem.price.desc()); + + List<Item> itemList = query.fetch(); + + for(Item item : itemList){ + System.out.println(item.toString()); + } + } - } -- GitLab