Осталось только подправить сумму в строке заказа
This commit is contained in:
parent
80fee84170
commit
8f95825cb0
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -66,9 +66,9 @@ public class DemoApplication implements CommandLineRunner {
|
||||
log.info("Create default orders values");
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
List<OrderLineEntity> lines = new ArrayList();
|
||||
lines.add(new OrderLineEntity(null, null, 3, null));
|
||||
lines.add(new OrderLineEntity(null, 3));
|
||||
final var user1 = userService.create(new UserEntity(null, "Alex", "Kryukov", "akryu@mail.ru", "password"));
|
||||
orderService.create(new OrderEntity(null, user1, lines));
|
||||
orderService.create(new OrderEntity(null, user1, null));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,97 +0,0 @@
|
||||
package com.example.demo.order_lines.api;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.modelmapper.ModelMapper;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.example.demo.core.configuration.Constants;
|
||||
import com.example.demo.order_lines.model.OrderLineEntity;
|
||||
import com.example.demo.order_lines.service.OrderLineService;
|
||||
import com.example.demo.products.model.ProductEntity;
|
||||
import com.example.demo.products.service.ProductService;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
|
||||
@RestController
|
||||
@RequestMapping(Constants.API_URL + "/orderLine")
|
||||
public class OrderLineController {
|
||||
private final OrderLineService orderLineService;
|
||||
private final ProductService productService;
|
||||
private final ModelMapper modelMapper;
|
||||
|
||||
public OrderLineController(OrderLineService orderLineService,
|
||||
ProductService productService, ModelMapper modelMapper) {
|
||||
this.orderLineService = orderLineService;
|
||||
this.productService = productService;
|
||||
this.modelMapper = modelMapper;
|
||||
}
|
||||
|
||||
private OrderLineDto toDto(OrderLineEntity orderLineEntity) {
|
||||
return modelMapper.map(orderLineEntity, OrderLineDto.class);
|
||||
}
|
||||
|
||||
private OrderLineEntity toEntity(OrderLineDto dto) {
|
||||
// Получаем заказ и товар из соответствующих сервисов по их идентификаторам из
|
||||
ProductEntity product = productService.get(dto.getProductId());
|
||||
|
||||
// Создаем новый экземпляр OrderLineEntity с помощью модельного маппера
|
||||
OrderLineEntity entity = modelMapper.map(dto, OrderLineEntity.class);
|
||||
|
||||
// Устанавливаем полученные заказ и товар в OrderLineEntity
|
||||
entity.setProduct(product);
|
||||
|
||||
return entity;
|
||||
}
|
||||
|
||||
@GetMapping
|
||||
public List<OrderLineDto> getAll(@RequestParam(name = "orderId", defaultValue = "0") Long orderId) {
|
||||
return orderLineService.getAll(orderId).stream().map(this::toDto).toList();
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public OrderLineDto get(@PathVariable(name = "id") Long id) {
|
||||
return toDto(orderLineService.get(id));
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public OrderLineDto create(@RequestBody @Valid OrderLineDto dto) {
|
||||
// Получаем информацию о продукте по его ID
|
||||
ProductEntity product = productService.get(dto.getProductId());
|
||||
|
||||
// Рассчитываем общую сумму строки заказа
|
||||
double totalPrice = product.getPrice() * dto.getCount();
|
||||
|
||||
// Создаем новую сущность строки заказа
|
||||
OrderLineEntity orderLineEntity = toEntity(dto);
|
||||
|
||||
// Устанавливаем общую сумму в сущность строки заказа
|
||||
orderLineEntity.setTotalPrice(totalPrice);
|
||||
|
||||
// Создаем строку заказа
|
||||
OrderLineEntity createdOrderLine = orderLineService.create(orderLineEntity);
|
||||
|
||||
// Преобразуем созданную строку заказа в DTO
|
||||
OrderLineDto createdOrderLineDto = toDto(createdOrderLine);
|
||||
|
||||
// Возвращаем созданную строку заказа в виде DTO с заполненным полем totalPrice
|
||||
return createdOrderLineDto;
|
||||
}
|
||||
|
||||
@PutMapping("/{id}")
|
||||
public OrderLineDto update(@PathVariable(name = "id") Long id, @RequestBody OrderLineDto dto) {
|
||||
return toDto(orderLineService.update(id, toEntity(dto)));
|
||||
}
|
||||
|
||||
@DeleteMapping("/{id}")
|
||||
public OrderLineDto delete(@PathVariable(name = "id") Long id) {
|
||||
return toDto(orderLineService.delete(id));
|
||||
}
|
||||
}
|
@ -7,8 +7,6 @@ import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
public class OrderLineDto {
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
private Long id;
|
||||
@NotNull
|
||||
@Min(1)
|
||||
private Long productId;
|
||||
@ -25,14 +23,6 @@ public class OrderLineDto {
|
||||
this.totalPriceLine = totalPriceLine;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Integer getCount() {
|
||||
return count;
|
||||
}
|
||||
|
@ -2,33 +2,22 @@ package com.example.demo.order_lines.model;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.ManyToOne;
|
||||
|
||||
import com.example.demo.core.model.BaseEntity;
|
||||
import com.example.demo.orders.model.OrderEntity;
|
||||
import com.example.demo.products.model.ProductEntity;
|
||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||
|
||||
public class OrderLineEntity extends BaseEntity {
|
||||
|
||||
private Integer count;
|
||||
private ProductEntity product;
|
||||
private Double totalPrice;
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "order_id")
|
||||
@JsonBackReference // Это свойство не управляется родительским объектом
|
||||
private OrderEntity order;
|
||||
|
||||
public OrderLineEntity() {
|
||||
|
||||
}
|
||||
|
||||
public OrderLineEntity(Long id, ProductEntity product, Integer count, Double totalPrice) {
|
||||
super(id);
|
||||
public OrderLineEntity(ProductEntity product, Integer count) {
|
||||
this.product = product;
|
||||
this.count = count;
|
||||
this.totalPrice = totalPrice;
|
||||
}
|
||||
|
||||
public ProductEntity getProduct() {
|
||||
@ -57,7 +46,7 @@ public class OrderLineEntity extends BaseEntity {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, product, count);
|
||||
return Objects.hash(id, product, count, totalPrice);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unlikely-arg-order-product")
|
||||
@ -68,8 +57,8 @@ public class OrderLineEntity extends BaseEntity {
|
||||
if (obj == null || getClass() != obj.getClass())
|
||||
return false;
|
||||
final OrderLineEntity other = (OrderLineEntity) obj;
|
||||
return Objects.equals(other.getId(), id)
|
||||
&& Objects.equals(other.getProduct(), product)
|
||||
&& Objects.equals(other.getCount(), count);
|
||||
return Objects.equals(other.getProduct(), product)
|
||||
&& Objects.equals(other.getCount(), count)
|
||||
&& Objects.equals(other.getTotalPrice(), totalPrice);
|
||||
}
|
||||
}
|
||||
|
@ -1,48 +0,0 @@
|
||||
package com.example.demo.order_lines.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.example.demo.core.error.NotFoundException;
|
||||
import com.example.demo.order_lines.model.OrderLineEntity;
|
||||
import com.example.demo.order_lines.repository.OrderLineRepository;
|
||||
|
||||
@Service
|
||||
public class OrderLineService {
|
||||
private final OrderLineRepository repository;
|
||||
|
||||
public OrderLineService(OrderLineRepository repository) {
|
||||
this.repository = repository;
|
||||
}
|
||||
|
||||
public List<OrderLineEntity> getAll(Long orderLineId) {
|
||||
if (Objects.equals(orderLineId, 0L)) {
|
||||
return repository.getAll();
|
||||
}
|
||||
return repository.getAll();
|
||||
}
|
||||
|
||||
public OrderLineEntity get(Long id) {
|
||||
return Optional.ofNullable(repository.get(id))
|
||||
.orElseThrow(() -> new NotFoundException(id));
|
||||
}
|
||||
|
||||
public OrderLineEntity create(OrderLineEntity entity) {
|
||||
return repository.create(entity);
|
||||
}
|
||||
|
||||
public OrderLineEntity update(Long id, OrderLineEntity entity) {
|
||||
final OrderLineEntity existsEntity = get(id);
|
||||
existsEntity.setProduct(entity.getProduct());
|
||||
existsEntity.setCount(entity.getCount());
|
||||
return repository.update(existsEntity);
|
||||
}
|
||||
|
||||
public OrderLineEntity delete(Long id) {
|
||||
final OrderLineEntity existsEntity = get(id);
|
||||
return repository.delete(existsEntity);
|
||||
}
|
||||
}
|
@ -1,22 +1,12 @@
|
||||
package com.example.demo.orders.api;
|
||||
|
||||
import java.sql.Date;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.modelmapper.ModelMapper;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.example.demo.core.configuration.Constants;
|
||||
import com.example.demo.order_lines.api.OrderLineDto;
|
||||
import com.example.demo.order_lines.model.OrderLineEntity;
|
||||
import com.example.demo.order_lines.service.OrderLineService;
|
||||
import com.example.demo.orders.model.OrderEntity;
|
||||
import com.example.demo.orders.service.OrderService;
|
||||
import com.example.demo.users.service.UserService;
|
||||
@ -28,33 +18,25 @@ public class OrderController {
|
||||
private final OrderService orderService;
|
||||
private final UserService userService;
|
||||
private final ModelMapper modelMapper;
|
||||
private final OrderLineService orderLineService;
|
||||
|
||||
public OrderController(OrderService orderService, UserService userService, ModelMapper modelMapper,
|
||||
OrderLineService orderLineService) {
|
||||
public OrderController(OrderService orderService, UserService userService, ModelMapper modelMapper) {
|
||||
this.orderService = orderService;
|
||||
this.userService = userService;
|
||||
this.modelMapper = modelMapper;
|
||||
this.orderLineService = orderLineService;
|
||||
}
|
||||
|
||||
private OrderDto toDto(OrderEntity entity) {
|
||||
var dto = new OrderDto();
|
||||
dto.setId(entity.getId());
|
||||
dto.setUserId(entity.getUser().getId());
|
||||
|
||||
// Преобразование каждой сущности OrderLineEntity в OrderLineDto и добавление их
|
||||
// в список lines
|
||||
dto.setDate(new Date(System.currentTimeMillis()));
|
||||
for (OrderLineEntity orderLineEntity : entity.getLines()) {
|
||||
OrderLineDto orderLineDto = new OrderLineDto();
|
||||
orderLineDto.setId(orderLineEntity.getId());
|
||||
orderLineDto.setProductId(orderLineEntity.getProduct().getId());
|
||||
orderLineDto.setCount(orderLineEntity.getCount());
|
||||
orderLineDto.setTotalPriceLine(orderLineEntity.getTotalPrice());
|
||||
dto.addOrderLine(orderLineDto);
|
||||
}
|
||||
|
||||
dto.setDate(new Date(System.currentTimeMillis()));
|
||||
return dto;
|
||||
}
|
||||
|
||||
@ -63,7 +45,6 @@ public class OrderController {
|
||||
if (dto.getUserId() != null) {
|
||||
entity.setUser(userService.get(dto.getUserId()));
|
||||
}
|
||||
// устанавливаем связь между заказом и строками заказа
|
||||
entity.getLines().clear();
|
||||
for (OrderLineDto lineDto : dto.getLines()) {
|
||||
OrderLineEntity orderLineEntity = modelMapper.map(lineDto, OrderLineEntity.class);
|
||||
|
@ -1,14 +1,13 @@
|
||||
package com.example.demo.orders.api;
|
||||
|
||||
import java.sql.Date;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.example.demo.order_lines.api.OrderLineDto;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.sql.Date;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class OrderDto {
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
@ -45,7 +44,7 @@ public class OrderDto {
|
||||
return lines;
|
||||
}
|
||||
|
||||
// метод для добавленя строк заказа
|
||||
// метод для добавления строк заказа
|
||||
public void addOrderLine(OrderLineDto orderLine) {
|
||||
this.lines.add(orderLine);
|
||||
}
|
||||
@ -54,4 +53,5 @@ public class OrderDto {
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,28 +1,36 @@
|
||||
package com.example.demo.orders.model;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.example.demo.core.model.BaseEntity;
|
||||
import com.example.demo.order_lines.model.OrderLineEntity;
|
||||
import com.example.demo.users.model.UserEntity;
|
||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class OrderEntity extends BaseEntity {
|
||||
private UserEntity user;
|
||||
@JsonManagedReference
|
||||
private final List<OrderLineEntity> lines = new ArrayList<>();
|
||||
private Double totalPrice;
|
||||
|
||||
public OrderEntity() {
|
||||
super();
|
||||
}
|
||||
|
||||
public OrderEntity(Long id, UserEntity user, List<OrderLineEntity> lines) {
|
||||
public OrderEntity(Long id, UserEntity user, Double totalPrice) {
|
||||
super(id);
|
||||
this.user = user;
|
||||
this.lines.clear();
|
||||
this.lines.addAll(lines);
|
||||
this.totalPrice = totalPrice;
|
||||
}
|
||||
|
||||
public Double getTotalPrice() {
|
||||
return totalPrice;
|
||||
}
|
||||
|
||||
public void setTotalPrice(Double totalPrice) {
|
||||
this.totalPrice = totalPrice;
|
||||
}
|
||||
|
||||
public UserEntity getUser() {
|
||||
@ -37,13 +45,17 @@ public class OrderEntity extends BaseEntity {
|
||||
return lines;
|
||||
}
|
||||
|
||||
public void setLines(OrderLineEntity line) {
|
||||
this.lines.add(line);
|
||||
public void addOrderLine(OrderLineEntity orderLine) {
|
||||
this.lines.add(orderLine);
|
||||
}
|
||||
|
||||
public void removeOrderLine(OrderLineEntity orderLine) {
|
||||
this.lines.remove(orderLine);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, user, lines);
|
||||
return Objects.hash(id, user, lines, totalPrice);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unlikely-arg-user")
|
||||
@ -56,11 +68,14 @@ public class OrderEntity extends BaseEntity {
|
||||
final OrderEntity other = (OrderEntity) obj;
|
||||
return Objects.equals(other.getId(), id)
|
||||
&& Objects.equals(other.getUser(), user)
|
||||
&& Objects.equals(other.getLines(), lines);
|
||||
&& Objects.equals(other.getLines(), lines)
|
||||
&& Objects.equals(other.getTotalPrice(), totalPrice);
|
||||
}
|
||||
|
||||
// метод добавления строк заказа в заказ
|
||||
public void addOrderLine(OrderLineEntity orderLine) {
|
||||
this.lines.add(orderLine);
|
||||
public Double calculateTotalOrderPrice() {
|
||||
for (OrderLineEntity orderLine : lines) {
|
||||
totalPrice += orderLine.getProduct().getPrice() * orderLine.getCount();
|
||||
}
|
||||
return totalPrice;
|
||||
}
|
||||
}
|
||||
|
@ -1,44 +1,35 @@
|
||||
package com.example.demo.orders.service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.example.demo.core.error.NotFoundException;
|
||||
import com.example.demo.order_lines.service.OrderLineService;
|
||||
import com.example.demo.order_lines.model.OrderLineEntity;
|
||||
import com.example.demo.orders.model.OrderEntity;
|
||||
import com.example.demo.orders.repository.OrderRepository;
|
||||
|
||||
@Service
|
||||
public class OrderService {
|
||||
private final OrderRepository repository;
|
||||
private final OrderLineService orderLineService;
|
||||
|
||||
public OrderService(OrderRepository repository, OrderLineService orderLineService) {
|
||||
public OrderService(OrderRepository repository) {
|
||||
this.repository = repository;
|
||||
this.orderLineService = orderLineService;
|
||||
}
|
||||
|
||||
public List<OrderEntity> getAll(Long userId, List<Long> lines) {
|
||||
|
||||
var linesEnt = new ArrayList<>();
|
||||
for (var lineid : lines) {
|
||||
linesEnt.add(orderLineService.get(lineid));
|
||||
}
|
||||
|
||||
if (!Objects.equals(userId, 0L) && !Objects.equals(linesEnt.size(), 0)) {
|
||||
if (userId != 0L && !lines.isEmpty()) {
|
||||
return repository.getAll().stream()
|
||||
.filter(line -> line.getUser().getId().equals(
|
||||
userId) && line.getLines().containsAll(linesEnt))
|
||||
.filter(line -> line.getUser().getId().equals(userId) && line.getLines().stream()
|
||||
.allMatch(orderLine -> lines.contains(orderLine.getProduct().getId())))
|
||||
.toList();
|
||||
}
|
||||
if (Objects.equals(userId, 0L) && !Objects.equals(linesEnt.size(), 0)) {
|
||||
return repository.getAll().stream().filter(line -> line.getLines().containsAll(linesEnt)).toList();
|
||||
if (userId == 0L && !lines.isEmpty()) {
|
||||
return repository.getAll().stream().filter(line -> line.getLines().stream()
|
||||
.allMatch(orderLine -> lines.contains(orderLine.getProduct().getId()))).toList();
|
||||
}
|
||||
if (!Objects.equals(userId, 0L) && Objects.equals(linesEnt.size(), 0)) {
|
||||
if (userId != 0L && lines.isEmpty()) {
|
||||
return repository.getAll().stream().filter(line -> line.getUser().getId().equals(userId)).toList();
|
||||
}
|
||||
return repository.getAll();
|
||||
@ -56,11 +47,13 @@ public class OrderService {
|
||||
public OrderEntity update(Long id, OrderEntity entity) {
|
||||
final OrderEntity existEntity = get(id);
|
||||
existEntity.setUser(entity.getUser());
|
||||
existEntity.getLines().clear(); // Очищаем существующие строки заказа
|
||||
var lines = entity.getLines();
|
||||
for (var line : lines) {
|
||||
existEntity.setLines(line);
|
||||
|
||||
// Очищаем текущие строки заказа и добавляем новые
|
||||
existEntity.getLines().clear();
|
||||
for (OrderLineEntity newOrderLine : entity.getLines()) {
|
||||
existEntity.addOrderLine(newOrderLine);
|
||||
}
|
||||
|
||||
return repository.update(existEntity);
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,9 @@ public class ProductController {
|
||||
}
|
||||
|
||||
private ProductDto toDto(ProductEntity entity) {
|
||||
return modelMapper.map(entity, ProductDto.class);
|
||||
ProductDto dto = modelMapper.map(entity, ProductDto.class);
|
||||
dto.setPrice(entity.getPrice());
|
||||
return dto;
|
||||
}
|
||||
|
||||
private ProductEntity toEntity(ProductDto dto) {
|
||||
|
@ -1,69 +0,0 @@
|
||||
package com.example.demo;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.MethodOrderer;
|
||||
import org.junit.jupiter.api.Order;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.TestMethodOrder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import com.example.demo.core.error.NotFoundException;
|
||||
import com.example.demo.order_lines.model.OrderLineEntity;
|
||||
import com.example.demo.order_lines.service.OrderLineService;
|
||||
|
||||
@SpringBootTest
|
||||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||
class OrderLineServiceTests {
|
||||
@Autowired
|
||||
private OrderLineService orderLineService;
|
||||
|
||||
@Test
|
||||
void getTest() {
|
||||
Assertions.assertThrows(NotFoundException.class, () -> orderLineService.get(0L));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(1)
|
||||
void createTest() {
|
||||
// Создаем тестовую сущность OrderLineEntity
|
||||
OrderLineEntity testOrderLine = new OrderLineEntity(null, null, 5, null);
|
||||
// Вызываем метод create() и сохраняем созданную сущность
|
||||
OrderLineEntity createdOrderLine = orderLineService.create(testOrderLine);
|
||||
// Проверяем, что метод create() вернул не null
|
||||
Assertions.assertNotNull(createdOrderLine);
|
||||
// Проверяем, что созданная сущность имеет назначенный ID
|
||||
Assertions.assertNotNull(createdOrderLine.getId());
|
||||
// Проверяем, что созданная сущность соответствует той, которую мы передали
|
||||
Assertions.assertEquals(testOrderLine.getCount(), createdOrderLine.getCount());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(2)
|
||||
void updateTest() {
|
||||
// Получаем сущность OrderLineEntity для обновления
|
||||
OrderLineEntity existingOrderLine = orderLineService.get(1L);
|
||||
// Создаем новое количество для обновления
|
||||
int newCount = 10;
|
||||
// Устанавливаем новое количество в сущность OrderLineEntity
|
||||
existingOrderLine.setCount(newCount);
|
||||
// Вызываем метод update() и сохраняем обновленную сущность
|
||||
OrderLineEntity updatedOrderLine = orderLineService.update(1L, existingOrderLine);
|
||||
// Проверяем, что метод update() вернул не null
|
||||
Assertions.assertNotNull(updatedOrderLine);
|
||||
// Проверяем, что обновленная сущность имеет то же количество, что и заданное
|
||||
Assertions.assertEquals(newCount, updatedOrderLine.getCount());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(3)
|
||||
void deleteTest() {
|
||||
// Удаляем сущность OrderLineEntity по ее ID
|
||||
OrderLineEntity deletedOrderLine = orderLineService.delete(1L);
|
||||
// Проверяем, что метод delete() вернул не null
|
||||
Assertions.assertNotNull(deletedOrderLine);
|
||||
// Проверяем, что удаленная сущность имеет тот же ID, что и удаленная
|
||||
Assertions.assertEquals(1L, deletedOrderLine.getId());
|
||||
// Проверяем, что сущность больше не существует в репозитории
|
||||
Assertions.assertThrows(NotFoundException.class, () -> orderLineService.get(1L));
|
||||
}
|
||||
}
|
@ -32,12 +32,12 @@ class OrderServiceTests {
|
||||
orderService.create(new OrderEntity(null, null, null));
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
List<OrderLineEntity> lines = new ArrayList();
|
||||
lines.add(new OrderLineEntity(null, null, 4, null));
|
||||
lines.add(new OrderLineEntity(null, null, 5, null));
|
||||
lines.add(new OrderLineEntity(null, null, 6, null));
|
||||
lines.add(new OrderLineEntity(null, null, 7, null));
|
||||
lines.add(new OrderLineEntity(null, 4));
|
||||
lines.add(new OrderLineEntity(null, 5));
|
||||
lines.add(new OrderLineEntity(null, 6));
|
||||
lines.add(new OrderLineEntity(null, 7));
|
||||
// Создаем тестовую сущность OrderEntity
|
||||
OrderEntity testOrder = new OrderEntity(null, null, lines);
|
||||
OrderEntity testOrder = new OrderEntity(null, null, null);
|
||||
// Вызываем метод create() и сохраняем созданную сущность
|
||||
OrderEntity createdOrder = orderService.create(testOrder);
|
||||
// Проверяем, что метод create() вернул не null
|
||||
|
Loading…
Reference in New Issue
Block a user