/
Renonr
/
SpringProject
Обзор
Документация
Войти
/
Renonr
/
SpringProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
Spring_Branch
src/test/java/com/example/onlineshop/AdminControllerTest.java
96 строк
3 KB
Renonr
"Version with DTO"
19 фев 2025, 03:07
19 фев 2025, 03:07
37e3ebe
Код
Авторство
О чём код?
package com.example.onlineshop; import com.example.onlineshop.controllers.AdminController; import com.example.onlineshop.dto.CategoryDTO; import com.example.onlineshop.dto.ProductDTO; import com.example.onlineshop.models.Product; import com.example.onlineshop.services.CategoryService; import com.example.onlineshop.services.ProductService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.http.ResponseEntity; import java.math.BigDecimal; import java.util.Arrays; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; class AdminControllerTest { @Mock private ProductService productService; @Mock private CategoryService categoryService; @InjectMocks private AdminController adminController; @BeforeEach void setUp() { MockitoAnnotations.initMocks(this); } @Test void createCategory_ShouldReturnCategory() { CategoryDTO category = new CategoryDTO(); category.setName("Electronics"); when(categoryService.saveCategory(any(CategoryDTO.class))).thenReturn(category); ResponseEntity<CategoryDTO> response = adminController.createCategory(category); assertEquals("Electronics", response.getBody().getName()); } @Test void updateCategory_ShouldUpdateAndReturnCategory() { CategoryDTO category = new CategoryDTO(); category.setId(1L); category.setName("Updated"); when(categoryService.saveCategory(any(CategoryDTO.class))).thenReturn(category); ResponseEntity<CategoryDTO> response = adminController.updateCategory(1L, category); assertEquals("Updated", response.getBody().getName()); } @Test void deleteCategory_ShouldReturnSuccessMessage() { doNothing().when(categoryService).deleteCategory(1L); ResponseEntity<String> response = adminController.deleteCategory(1L); assertEquals("Категория удалена", response.getBody()); } @Test void createProduct_ShouldReturnProduct() { ProductDTO productDTO = new ProductDTO("iPhone", "Apple iPhone 15", new BigDecimal("999.99"), 10, Arrays.asList(1L, 2L)); Product product = new Product(); product.setName("iPhone"); when(productService.createProduct(any(ProductDTO.class))).thenReturn(productDTO); ResponseEntity<ProductDTO> response = adminController.createProduct(productDTO); assertNotNull(response.getBody()); assertEquals("iPhone", response.getBody().getName()); verify(productService, times(1)).createProduct(any(ProductDTO.class)); } @Test void deleteProduct_ShouldReturnSuccessMessage() { doNothing().when(productService).deleteProduct(1L); ResponseEntity<String> response = adminController.deleteProduct(1L); assertEquals("Товар удалён", response.getBody()); } }