Skip to content

Commit

Permalink
FIX: 카테고리 테스트 데이터 추가, 테스트 코드 일부 수정 #3
Browse files Browse the repository at this point in the history
  • Loading branch information
sorryisme committed Nov 28, 2024
1 parent 003a19f commit 4fddc08
Show file tree
Hide file tree
Showing 8 changed files with 80 additions and 216 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,4 @@
public interface MajorCategoryMapper {

List<MajorCategoryResponse> findMajorCategoryList();

@Insert("INSERT INTO MAJOR_CATEGORY(category_name, description) VALUES (#{categoryName}, #{categoryName})")
int insertMajorCategory(String categoryName, String categoryDescription);

@Insert("INSERT INTO SUBCATEGORY(major_category_id, category_name, description) VALUES (#{majorCategoryId}, #{categoryName}, #{description})")
int insertSubCategory(long majorCategoryId, String categoryName, String description);

}
5 changes: 0 additions & 5 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
#spring.application.name=fmarket
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.url=jdbc:mysql://localhost:3306/flab?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
#spring.datasource.username=root
#spring.datasource.password=2357
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:tcp://localhost/~/test;MODE=MySQL
spring.datasource.username=sa
Expand Down
67 changes: 67 additions & 0 deletions src/main/resources/data.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
INSERT INTO major_category (category_name, description)
VALUES ('브랜드 패션', '고급 브랜드 의류 및 패션 아이템'),
('패션의류', '일반 의류 및 패션 아이템'),
('유아', '유아를 위한 제품 및 장난감'),
('생필품', '일상 생활에 필요한 필수품'),
('문구', '학습 및 사무용 문구류'),
('컴퓨터', '컴퓨터 및 관련 액세서리'),
('스포츠', '스포츠 용품 및 의류'),
('자동차', '자동차 관련 제품 및 액세서리');

INSERT INTO `subcategory` (category_name, major_category_id, description)
VALUES
-- 브랜드 패션 하위 카테고리
('브랜드의류', 1, '브랜드 기반의 다양한 의류'),
('브랜드 여성의류', 1, '브랜드 여성용 의류'),
('브랜드 남성의류', 1, '브랜드 남성용 의류'),
('브랜드 캐주얼의류', 1, '캐주얼 브랜드 의류'),
('브랜드잡화', 1, '브랜드 액세서리 및 잡화'),
('브랜드 쥬얼리/시계', 1, '브랜드 쥬얼리 및 시계'),
('수입명품', 1, '해외 수입 명품 제품'),
('스포츠브랜드', 1, '스포츠 관련 브랜드 상품'),
('브랜드 아웃도어', 1, '아웃도어 브랜드 의류 및 용품'),
('브랜드 스포츠패션', 1, '스포츠와 패션의 조화된 브랜드 제품'),

-- 패션의류 하위 카테고리
('브랜드의류', 2, '브랜드 패션과 겹치는 의류'),
('브랜드 여성의류', 2, '브랜드 여성용 의류'),
('브랜드 남성의류', 2, '브랜드 남성용 의류'),
('브랜드 캐주얼의류', 2, '캐주얼한 브랜드 의류'),

-- 유아 하위 카테고리
('유아동', 3, '유아 및 아동을 위한 제품'),
('출산/육아', 3, '출산 및 육아에 필요한 제품'),
('장난감/완구', 3, '유아동 장난감 및 완구'),
('유아동 의류', 3, '유아 및 아동용 의류'),
('유아동 신발/잡화', 3, '유아 및 아동용 신발 및 잡화'),

-- 생필품 하위 카테고리
('생필품', 4, '생활에 필요한 필수품'),
('바디/헤어', 4, '신체 및 헤어 관리용품'),

-- 문구 하위 카테고리
('문구', 5, '필기구 및 학습용 문구류'),
('문구/사무용품', 5, '사무용 및 학습용 문구'),
('사무기기', 5, '사무실에서 사용하는 기기'),

-- 컴퓨터 하위 카테고리
('컴퓨터', 6, '컴퓨터 및 관련 제품'),
('노트북/데스크탑', 6, '노트북 및 데스크탑 PC'),
('모니터/프린터', 6, '모니터 및 프린터 기기'),
('PC주변기기', 6, '컴퓨터 주변 기기 및 액세서리'),
('저장장치', 6, '컴퓨터 및 디지털 저장장치'),

-- 스포츠 하위 카테고리
('스포츠의류/운동화', 7, '스포츠용 의류 및 신발'),
('휘트니스/수영', 7, '휘트니스 및 수영 관련 용품'),
('구기/라켓', 7, '구기 및 라켓 스포츠 용품'),
('골프', 7, '골프 관련 장비 및 의류'),
('자전거/보드/기타레저', 7, '자전거, 보드 및 기타 레저 용품'),
('캠핑/낚시', 7, '캠핑 및 낚시에 필요한 용품'),
('등산/아웃도어', 7, '등산 및 아웃도어 활동용품'),

-- 자동차 하위 카테고리
('자동차용품', 8, '자동차 관련 용품'),
('공구', 8, '자동차와 관련된 공구'),
('공구/안전/산업용품', 8, '공구 및 안전 장비, 산업 용품');

6 changes: 3 additions & 3 deletions src/main/resources/mapper/MajorCategory.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
<result property="createdAt" column="created_at" />
<result property="updatedAt" column="updated_at" />
<collection property="subcategories" ofType="com.sorryisme.fmarket.dto.response.SubcategoryResponse">
<id property="subcategoryId" column="sub_Category_id"/>
<result property="categoryName" column="category_name"/>
<id property="subcategoryId" column="subcategory_id"/>
<result property="categoryName" column="subcategory_name"/>
<result property="majorCategoryId" column="major_category_id" />
<result property="createdAt" column="created_at" />
<result property="updatedAt" column="updated_at" />
Expand All @@ -25,7 +25,7 @@
MC.CREATED_AT,
MC.UPDATED_AT,
SC.SUBCATEGORY_ID,
SC.CATEGORY_NAME,
SC.CATEGORY_NAME as SUBCATEGORY_NAME,
SC.CREATED_AT,
SC.UPDATED_AT
FROM MAJOR_CATEGORY MC
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.sorryisme.fmarket.domain.product.mapper
package com.sorryisme.fmarket.mapper

import com.sorryisme.fmarket.dto.response.MajorCategoryResponse
import com.sorryisme.fmarket.mapper.MajorCategoryMapper
Expand All @@ -17,15 +17,11 @@ class MajorCategoryMapperTest extends Specification {
private MajorCategoryMapper majorCategoryMapper;

def "메인 카테고리 조회 시 메인카테고리와 서브카테고리가 모두 조회된다"() {
given:
majorCategoryMapper.insertMajorCategory("대분류", "대분류 설명")
majorCategoryMapper.insertSubCategory(1, "중분류", "중분류 설명")
majorCategoryMapper.insertSubCategory(1, "중분류1", "중분류 설명1")
when:
List<MajorCategoryResponse> majorCategoryList = majorCategoryMapper.findMajorCategoryList()
then:
majorCategoryList.size() == 1
majorCategoryList.get(0).getSubcategories().size() == 2
majorCategoryList.size() == 8
majorCategoryList.get(0).getSubcategories().size() == 10
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,22 @@ import com.sorryisme.fmarket.mapper.MajorCategoryMapper
import spock.lang.Specification

class ProductServiceTest extends Specification {
private MajorCategoryMapper majorCategoryMapper

def "카테고리 조회 시 모든 카테고리가 조회된다"() {
given:
majorCategoryMapper = Mock()
def majorCategory = createMockMajorCategoryList();
MajorCategoryMapper majorCategoryMapper = Mock()
def majorCategory = createMockMajorCategoryList()
majorCategoryMapper.findMajorCategoryList() >> [majorCategory]
ProductService productService = new ProductService(majorCategoryMapper)

when:
def majCategoryList = majorCategoryMapper.findMajorCategoryList()
def majCategoryList = productService.findMajorCategoryList()

then:
majCategoryList.size() == 1
majorCategory.getSubcategories().size() == 2
}

/**
* 픽스처 작성
*/
private static MajorCategoryResponse createMockMajorCategoryList() {
def subCategory = SubcategoryResponse.builder()
.subcategoryId(1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class UserServiceTest extends Specification {
UserService userService = new UserService(userMapper)

when:
userService.createUser(createUserRequestDto());
userService.createUser(createUserRequestDto())

then:
def e = thrown(DuplicateDataException.class);
Expand Down
186 changes: 0 additions & 186 deletions src/test/resources/schema.sql

This file was deleted.

0 comments on commit 4fddc08

Please sign in to comment.