Исправление обновления заказов и добавление методов вычисления суммы в тесты
This commit is contained in:
parent
88b46e2ee3
commit
a0f3b16491
@ -8,7 +8,7 @@ public final class Formatter {
|
||||
private Formatter() {
|
||||
}
|
||||
|
||||
private static final SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
private static SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
public static String format(Date date) {
|
||||
return dateFormatter.format(date);
|
||||
|
@ -41,8 +41,6 @@ public class OrderService {
|
||||
|
||||
public OrderEntity update(Long id, OrderEntity entity) {
|
||||
final OrderEntity existsEntity = get(id);
|
||||
existsEntity.setUser(entity.getUser());
|
||||
existsEntity.setDate(entity.getDate());
|
||||
existsEntity.setStatus(entity.getStatus());
|
||||
return repository.update(existsEntity);
|
||||
}
|
||||
|
@ -54,18 +54,22 @@ class OrderBookServiceTests {
|
||||
.create(new UserEntity(null, "TestUser", "user53262@gmail.com", "lawy7728", false));
|
||||
final var order1 = orderService
|
||||
.create(new OrderEntity(null, user, Formatter.parse("2024-03-28"), "Выполняется"));
|
||||
final var order2 = orderService.create(new OrderEntity(null, user, Formatter.parse("2022-09-07"), "Выдан"));
|
||||
final var order2 = orderService
|
||||
.create(new OrderEntity(null, user, Formatter.parse("2022-09-07"), "Выдан"));
|
||||
final var book1 = bookService.create(new BookEntity(null, category, "Шестерка воронов", "Ли Бардуго",
|
||||
700.00, 5624,
|
||||
"Триша Левенселлер — американская писательница, подарившая вам роман «Тени между нами», который стал бестселлером Amazon в разделе «Фэнтези YA», вновь радует своих фанатов новой магической историей «Клинок тайн».\n\nЕще до выхода в свет книгу добавили в раздел «Хочу прочитать» более 10 тысяч человек на портале Goodreads.com.\n\n«Клинок тайн» — первая часть захватывающей дилогии про девушку, которая благодаря магии крови создает самое опасное в мире оружие, и ослепительного юношу, что составляет ей компанию в этом непростом приключении.",
|
||||
"Юная Зива предпочитает проводить время с оружием, а не с людьми. Она кузнец и ей предстоит создать самое могущественное оружие на земле.\n\nДевушка демонстрирует меч, способный от одной капли крови врага раскрыть все тайные замыслы его обладателю.\n\nОднако у заказчика на оружие другие планы: заставить Зиву вооружить мечами свое войско и поработить весь мир. Когда девушка понимает, что меч, созданный благодаря магии крови, невозможно уничтожить и рано или поздно на нее объявят охоту, ей остается только одно – бежать, не оглядываясь. Зиве теперь суждено спасти мир от собственного творения. Но как бы далеко она ни старалась убежать, все ловушки уже расставлены.",
|
||||
"2946447", "Эксмо", "Young Adult. Бестселлеры Триши Левенселлер", 2022, 480, "20.7x13x2.5",
|
||||
"2946447", "Эксмо", "Young Adult. Бестселлеры Триши Левенселлер", 2022, 480,
|
||||
"20.7x13x2.5",
|
||||
"Мягкий переплёт", 1500, 440, ""));
|
||||
final var book2 = bookService.create(new BookEntity(null, category, "Форсайт", "Сергей Лукъяненко", 775.00,
|
||||
final var book2 = bookService.create(new BookEntity(null, category, "Форсайт", "Сергей Лукъяненко",
|
||||
775.00,
|
||||
1240,
|
||||
"Новый долгожданный роман от автора бестселлеров «Ночной дозор» и «Черновик». Увлекательная история о Мире После и мире настоящего, где 5 процентов людей знают о надвигающемся апокалипсисе больше, чем кто-либо может представить.",
|
||||
"Людям порой снится прошлое. Иногда хорошее, иногда не очень. Но что делать, если тебе начинает сниться будущее? И в нём ничего хорошего нет совсем.",
|
||||
"3001249", "АСТ", "Книги Сергея Лукьяненко", 2023, 352, "20.5x13x2", "Твердый переплёт", 20000,
|
||||
"3001249", "АСТ", "Книги Сергея Лукьяненко", 2023, 352, "20.5x13x2", "Твердый переплёт",
|
||||
20000,
|
||||
350, ""));
|
||||
|
||||
orderBookService.create(new OrderBookEntity(null, order1, book1, 4));
|
||||
@ -83,11 +87,13 @@ class OrderBookServiceTests {
|
||||
.create(new UserEntity(null, "TestUser", "user53262@gmail.com", "lawy7728", false));
|
||||
final var order1 = orderService
|
||||
.create(new OrderEntity(null, user, Formatter.parse("2024-03-28"), "Выполняется"));
|
||||
final var book2 = bookService.create(new BookEntity(null, category, "Форсайт", "Сергей Лукъяненко", 775.00,
|
||||
final var book2 = bookService.create(new BookEntity(null, category, "Форсайт", "Сергей Лукъяненко",
|
||||
775.00,
|
||||
1240,
|
||||
"Новый долгожданный роман от автора бестселлеров «Ночной дозор» и «Черновик». Увлекательная история о Мире После и мире настоящего, где 5 процентов людей знают о надвигающемся апокалипсисе больше, чем кто-либо может представить.",
|
||||
"Людям порой снится прошлое. Иногда хорошее, иногда не очень. Но что делать, если тебе начинает сниться будущее? И в нём ничего хорошего нет совсем.",
|
||||
"3001249", "АСТ", "Книги Сергея Лукьяненко", 2023, 352, "20.5x13x2", "Твердый переплёт", 20000,
|
||||
"3001249", "АСТ", "Книги Сергея Лукьяненко", 2023, 352, "20.5x13x2", "Твердый переплёт",
|
||||
20000,
|
||||
350, ""));
|
||||
final Integer newCount = 6;
|
||||
final OrderBookEntity entity = orderBookService.get(3L);
|
||||
@ -106,12 +112,14 @@ class OrderBookServiceTests {
|
||||
final var category = categoryService.create(new CategoryEntity(null, "Художественная литература"));
|
||||
final var user = userService
|
||||
.create(new UserEntity(null, "TestUser", "user53262@gmail.com", "lawy7728", false));
|
||||
final var order2 = orderService.create(new OrderEntity(null, user, Formatter.parse("2022-09-07"), "Выдан"));
|
||||
final var order2 = orderService
|
||||
.create(new OrderEntity(null, user, Formatter.parse("2022-09-07"), "Выдан"));
|
||||
final var book1 = bookService.create(new BookEntity(null, category, "Шестерка воронов", "Ли Бардуго",
|
||||
700.00, 5624,
|
||||
"Триша Левенселлер — американская писательница, подарившая вам роман «Тени между нами», который стал бестселлером Amazon в разделе «Фэнтези YA», вновь радует своих фанатов новой магической историей «Клинок тайн».\n\nЕще до выхода в свет книгу добавили в раздел «Хочу прочитать» более 10 тысяч человек на портале Goodreads.com.\n\n«Клинок тайн» — первая часть захватывающей дилогии про девушку, которая благодаря магии крови создает самое опасное в мире оружие, и ослепительного юношу, что составляет ей компанию в этом непростом приключении.",
|
||||
"Юная Зива предпочитает проводить время с оружием, а не с людьми. Она кузнец и ей предстоит создать самое могущественное оружие на земле.\n\nДевушка демонстрирует меч, способный от одной капли крови врага раскрыть все тайные замыслы его обладателю.\n\nОднако у заказчика на оружие другие планы: заставить Зиву вооружить мечами свое войско и поработить весь мир. Когда девушка понимает, что меч, созданный благодаря магии крови, невозможно уничтожить и рано или поздно на нее объявят охоту, ей остается только одно – бежать, не оглядываясь. Зиве теперь суждено спасти мир от собственного творения. Но как бы далеко она ни старалась убежать, все ловушки уже расставлены.",
|
||||
"2946447", "Эксмо", "Young Adult. Бестселлеры Триши Левенселлер", 2022, 480, "20.7x13x2.5",
|
||||
"2946447", "Эксмо", "Young Adult. Бестселлеры Триши Левенселлер", 2022, 480,
|
||||
"20.7x13x2.5",
|
||||
"Мягкий переплёт", 1500, 440, ""));
|
||||
|
||||
orderBookService.delete(3L);
|
||||
@ -123,4 +131,30 @@ class OrderBookServiceTests {
|
||||
Assertions.assertEquals(3, orderBookService.getAll(0L, 0L).size());
|
||||
Assertions.assertEquals(4L, newEntity.getId());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(4)
|
||||
void getSumTest() throws ParseException {
|
||||
final var category = categoryService.create(new CategoryEntity(null, "Художественная литература"));
|
||||
final var user = userService
|
||||
.create(new UserEntity(null, "TestUser", "user53262@gmail.com", "lawy7728", false));
|
||||
final var order1 = orderService
|
||||
.create(new OrderEntity(null, user, Formatter.parse("2024-03-28"), "Выполняется"));
|
||||
final var book2 = bookService.create(new BookEntity(null, category, "Форсайт", "Сергей Лукъяненко",
|
||||
775.00,
|
||||
1240,
|
||||
"Новый долгожданный роман от автора бестселлеров «Ночной дозор» и «Черновик». Увлекательная история о Мире После и мире настоящего, где 5 процентов людей знают о надвигающемся апокалипсисе больше, чем кто-либо может представить.",
|
||||
"Людям порой снится прошлое. Иногда хорошее, иногда не очень. Но что делать, если тебе начинает сниться будущее? И в нём ничего хорошего нет совсем.",
|
||||
"3001249", "АСТ", "Книги Сергея Лукьяненко", 2023, 352, "20.5x13x2", "Твердый переплёт",
|
||||
20000,
|
||||
350, ""));
|
||||
|
||||
final var entity = orderBookService.get(1L);
|
||||
Double initialSum = orderBookService.getSum(1L);
|
||||
Assertions.assertEquals(entity.getCount() * entity.getBook().getPrice(), initialSum);
|
||||
final var changedEntity = orderBookService.update(1L, new OrderBookEntity(null, order1, book2, 6));
|
||||
Double changedSum = orderBookService.getSum(1L);
|
||||
Assertions.assertEquals(changedEntity.getCount() * changedEntity.getBook().getPrice(), changedSum);
|
||||
Assertions.assertNotEquals(initialSum, changedSum);
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,12 @@ import org.junit.jupiter.api.TestMethodOrder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
import com.example.backend.categories.model.CategoryEntity;
|
||||
import com.example.backend.categories.service.CategoryService;
|
||||
import com.example.backend.books.model.BookEntity;
|
||||
import com.example.backend.books.service.BookService;
|
||||
import com.example.backend.ordersbooks.model.OrderBookEntity;
|
||||
import com.example.backend.ordersbooks.service.OrderBookService;
|
||||
import com.example.backend.orders.model.OrderEntity;
|
||||
import com.example.backend.orders.service.OrderService;
|
||||
import com.example.backend.users.model.UserEntity;
|
||||
@ -20,6 +26,15 @@ import com.example.backend.core.utils.Formatter;
|
||||
@SpringBootTest
|
||||
@TestMethodOrder(OrderAnnotation.class)
|
||||
class OrderServiceTests {
|
||||
@Autowired
|
||||
private CategoryService categoryService;
|
||||
|
||||
@Autowired
|
||||
private BookService bookService;
|
||||
|
||||
@Autowired
|
||||
private OrderBookService orderBookService;
|
||||
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
@ -52,16 +67,13 @@ class OrderServiceTests {
|
||||
new UserEntity(null, "Chief", "forum98761@gmail.com", "bth4323", true));
|
||||
final String test = "TEST";
|
||||
final OrderEntity entity = orderService.get(3L);
|
||||
final UserEntity oldUser = entity.getUser();
|
||||
final String oldStatus = entity.getStatus();
|
||||
final OrderEntity newEntity = orderService.update(3L,
|
||||
new OrderEntity(null, user, Formatter.parse("2024-03-15"), test));
|
||||
Assertions.assertEquals(3, orderService.getAll(0L).size());
|
||||
Assertions.assertEquals(newEntity, orderService.get(3L));
|
||||
Assertions.assertEquals(test, newEntity.getStatus());
|
||||
Assertions.assertEquals(user, newEntity.getUser());
|
||||
Assertions.assertNotEquals(oldStatus, newEntity.getStatus());
|
||||
Assertions.assertNotEquals(oldUser, newEntity.getUser());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -79,4 +91,23 @@ class OrderServiceTests {
|
||||
Assertions.assertEquals(3, orderService.getAll(0L).size());
|
||||
Assertions.assertEquals(4L, newEntity.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(4)
|
||||
void getFullSumTest() {
|
||||
final var category = categoryService.create(new CategoryEntity(null, "Художественная литература"));
|
||||
final var book = bookService.create(new BookEntity(null, category, "Шестерка воронов", "Ли Бардуго",
|
||||
700.00, 5624,
|
||||
"Триша Левенселлер — американская писательница, подарившая вам роман «Тени между нами», который стал бестселлером Amazon в разделе «Фэнтези YA», вновь радует своих фанатов новой магической историей «Клинок тайн».\n\nЕще до выхода в свет книгу добавили в раздел «Хочу прочитать» более 10 тысяч человек на портале Goodreads.com.\n\n«Клинок тайн» — первая часть захватывающей дилогии про девушку, которая благодаря магии крови создает самое опасное в мире оружие, и ослепительного юношу, что составляет ей компанию в этом непростом приключении.",
|
||||
"Юная Зива предпочитает проводить время с оружием, а не с людьми. Она кузнец и ей предстоит создать самое могущественное оружие на земле.\n\nДевушка демонстрирует меч, способный от одной капли крови врага раскрыть все тайные замыслы его обладателю.\n\nОднако у заказчика на оружие другие планы: заставить Зиву вооружить мечами свое войско и поработить весь мир. Когда девушка понимает, что меч, созданный благодаря магии крови, невозможно уничтожить и рано или поздно на нее объявят охоту, ей остается только одно – бежать, не оглядываясь. Зиве теперь суждено спасти мир от собственного творения. Но как бы далеко она ни старалась убежать, все ловушки уже расставлены.",
|
||||
"2946447", "Эксмо", "Young Adult. Бестселлеры Триши Левенселлер", 2022, 480, "20.7x13x2.5",
|
||||
"Мягкий переплёт", 1500, 440, ""));
|
||||
|
||||
Double initialSum = orderService.getFullSum(1L);
|
||||
Assertions.assertEquals(0, initialSum);
|
||||
final var orderBook = orderBookService.create(new OrderBookEntity(null, orderService.get(1L), book, 4));
|
||||
Double сhangedSum = orderService.getFullSum(1L);
|
||||
Assertions.assertEquals(book.getPrice() * orderBook.getCount(), сhangedSum);
|
||||
Assertions.assertNotEquals(initialSum, сhangedSum);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user