@ExtendWith(MockitoExtension.class)
public classCategoryServiceTest {
@Mock
private CategoryRepository categoryRepository;
@Mock
private StoreRepository storeRepository;
@InjectMocks
private CategoryServiceImpl categoryService;
private Store store;
private User user;
private Category category;
private CategoryRequest categoryRequest;
@Autowired
private MockMvc mockMvc;
@BeforeEach
void setUp() {
categoryService =new CategoryServiceImpl(categoryRepository,storeRepository);
user = User.builder()
.username("admin")
.password("admi
.name("관리자")
.phoneNum("01090551111")
.birth(null)
.type("admin")
.build();
// UUID storeId = UUID.randomUUID();
store = Store.builder()
.user(user)
.storeName("starbucks")
.build();
storeRepository.save(store);
category = Category.builder()
.categoryName("coffee")
.store(store)
.build();
categoryRepository.save(category);
categoryRequest = CategoryRequest.builder()
.storeId(store.getId())
.categoryName("coffee")
.build();
Category category =newCategory(categoryRequest.getCategoryName(), store);
categoryRepository.save(category);
}
@DisplayName("카테고리 생성 테스트")
@Test
void When_Create_NewCategory()throwsException {
// given
CategoryRequest categoryRequest =new CategoryRequest(store.getId(), "coffee");
when(categoryRepository.save(any(Category.class))).thenReturn(category);
// when
Category createNewCategory = categoryService.createNewCategory(categoryRequest);
// then
verify(categoryRepository, atLeastOnce()).save(any(Category.class));
assertEquals(createNewCategory, category.getId());
}
@DisplayName("카테고리 1건 조회 테스트")
@Test
void findCategoryById() {
// given
UUID testId = UUID.randomUUID();
given(categoryRepository.findById(any())).willReturn(Optional.empty());
assertThrows(CategoryNotFoundException.class,() -> categoryService.findCategoryById(testId));
verify(categoryRepository).findById(any());
}
@DisplayName("카테고리 전체 조회 테스트")
@Test
void findCategoryList() {
List<Category> categories =newArrayList<>();
categories.add(new Category("coffee", store));
given(categoryRepository.findAll()).willReturn(categories);
List<Category> expected = categoryService.searchCategories(store.getId(),"coffee");
assertEquals(expected, categories);
verify(categoryRepository.findAll());
}
@Test
void check() {
System.out.println(category);
System.out.println(store.getId());
System.out.println(category.getStore());
System.out.println(categoryRequest.getStoreId());
System.out.println(categoryRequest.getStoreId());
}
}