/
ilyaBu
/
WebSpringJava
Обзор
Документация
Войти
/
ilyaBu
/
WebSpringJava
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/test/java/ru/gb/spring/diplomawebjavaspringgb/DiplomaWebJavaSpringGbApplicationTests.java
165 строк
8 KB
IliaBu
Update code
13 июл 2024, 17:47
13 июл 2024, 17:47
bfc632e
Код
Авторство
О чём код?
package ru.gb.spring.diplomawebjavaspringgb; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.domain.*; import org.springframework.test.context.jdbc.Sql; import org.testcontainers.junit.jupiter.Testcontainers; import ru.gb.spring.diplomawebjavaspringgb.model.PriceList; import ru.gb.spring.diplomawebjavaspringgb.repository.PriceListRepository; import ru.gb.spring.diplomawebjavaspringgb.service.PriceListService; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @Testcontainers public class DiplomaWebJavaSpringGbApplicationTests { @Autowired private PriceListService priceListService; @Autowired private PriceListRepository priceListRepository; /** * Метод тестирует сохранение нового объекта PriceList в базе данных и утверждает, что сохраненный объект имеет непустой артикул. */ @Test @Sql({"/clear-data.sql"}) void testSaveItem() { PriceList pricelist = new PriceList("0.010.1714.3", "КЛАПАН", "1", "0", "648.63", "459.45", "0", "0", "83.11", "29.18", "25.77", "0.1155"); PriceList savedpricelist = priceListRepository.save(pricelist); assertNotNull(savedpricelist.getArticul()); } /** * Метод тестирует {@link PriceListRepository} для поиска всех объектов {@link PriceList} в базе данных, которые содержат указанное ключевое слово, без учета регистра. */ @Test @Sql({"/clear-data.sql", "/test-pricelist-data.sql"}) void testFindByArticulContainsIgnoreCase() { String keyword = "039023P1"; Pageable pageable = PageRequest.of(0, 10); Page<PriceList> result = priceListRepository.findByArticulContainsIgnoreCase(keyword, pageable); assertFalse(result.getContent().isEmpty()); } /** * Метод тестирует метод {@link PriceListRepository#findByArticulContainsIgnoreCase(String, Pageable)}, когда предоставленное ключевое слово имеет значение NULL. * Проверяет, что возвращаемая страница {@link Page} объектов {@link PriceList} пуста, если ключевое слово имеет значение null. */ @Test @Sql({"/clear-data.sql", "/test-pricelist-data.sql"}) public void testFindByArticulContainsIgnoreCase_NullKeyword() { String keyword = null; Pageable pageable = PageRequest.of(0, 10); Page<PriceList> result = priceListRepository.findByArticulContainsIgnoreCase(keyword, pageable); assertTrue(result.getContent().isEmpty()); } /** * Метод тестирует метод {@link PriceListService#findAll(Pageable)}, который извлекает страницу объектов {@link PriceList} из базы данных. */ @Test @Sql({"/clear-data.sql", "/test-pricelist-data.sql"}) public void testFindAll() { Pageable pageable = PageRequest.of(0, 10); Page<PriceList> actualPage = priceListService.findAll(pageable); assertFalse(actualPage.getContent().isEmpty()); } /** * Метод тестирует объект {@link PriceList}, извлекает из базы данных, используя предоставленный идентификатор. */ @Test @Sql({"/clear-data.sql", "/test-pricelist-data.sql"}) public void testGetPriceListById() { String id = "039087P1"; PriceList actualPriceList = priceListService.getPriceListById(id); assertFalse(actualPriceList.getArticul().isEmpty()); } /** * Метод тестирует обновление значения столбца quantity в указанной таблице. */ @Test @Sql({"/clear-data.sql", "/test-list-selected-parts-data.sql"}) public void testUpdateValueTablePriceList() { String tableName = "list_selected_parts"; String articul = "0.010.1714.3"; String quantity = "3"; priceListService.updateValueTablePriceList(tableName, articul, quantity); assertEquals(priceListService.getRowNumberTableListSelectedPartsById(tableName, articul).get(0).getQuantity(), "3"); } /** * Метод тестирует создание новой таблицы в базе данных. */ @Test @Sql({"/clear-data.sql"}) public void testCreateTable() { String tableName = "testTable"; priceListService.createTable(tableName); assertTrue(priceListService.getRowNumberTableListSelectedParts(tableName).isEmpty()); } /** * Метод тестирует удаление строки из указанной таблицы в базе данных на основе предоставленного articul и имени таблицы. */ @Test @Sql({"/clear-data.sql", "/test-list-selected-parts-data.sql"}) public void testDeleteTableListSelectedPartsById() { String articul = "0.010.1714.3"; String tableName = "list_selected_parts"; priceListService.deleteTableListSelectedPartsById(articul, tableName); assertTrue(priceListService.getRowNumberTableListSelectedParts(tableName).isEmpty()); } /** * Метод тестирует удаление всех строк из указанной таблицы в базе данных. */ @Test @Sql({"/clear-data.sql", "/test-list-selected-parts-data.sql"}) public void testDeleteTableAllListSelectedParts() { String tableName = "list_selected_parts"; priceListService.deleteTableAllListSelectedParts(tableName); assertTrue(priceListService.getRowNumberTableListSelectedParts(tableName).isEmpty()); } /** * Метод извлекает текущий курс обмена евро для получения из указанного источника. * Проверяет что он не пустой. */ @Test public void testGetReceivingEuroExchangeRateCurrentDate() { String euroValue = priceListService.getReceivingEuroExchangeRateCurrentDate(); System.out.println(euroValue); assertFalse(euroValue.isEmpty()); } /** * Метод тестирует получение имени и адреса контрагента по его ИНН (индивидуальному номеру налогоплательщика). */ @Test public void testGetNameAndAddressCounterpartyUsingINN_ValidINN_ReturnsCorrectNameAndAddress() { String inn = "7702070139"; String result = priceListService.getNameAndAddressCounterpartyUsingINN(inn); System.out.println(result); assertFalse(result.isEmpty()); } /** * Метод тестирует метод {@code getNameAndAddressCounterpartyUsingINN}, когда указан недопустимый ИНН. * Он проверяет, возвращает ли метод пустую строку и сообщение, указывающее на ошибку индекса за пределами границ. */ @Test public void testGetNameAndAddressCounterpartyUsingINN_InvalidINN_ReturnsEmptyString() { String invalidInn = "123456789"; String result = priceListService.getNameAndAddressCounterpartyUsingINN(invalidInn); System.out.println(result); assertTrue(result.contains("Index 0 out of bounds for length 0")); } }