LabWork02 Add UserEntity
This commit is contained in:
parent
6f0a431bd9
commit
6137e97499
@ -10,8 +10,12 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
import com.example.demo.items.model.ItemEntity;
|
||||
import com.example.demo.items.service.ItemService;
|
||||
import com.example.demo.messages.model.MessageEntity;
|
||||
import com.example.demo.messages.service.MessageService;
|
||||
import com.example.demo.types.model.TypeEntity;
|
||||
import com.example.demo.types.service.TypeService;
|
||||
import com.example.demo.users.model.UserEntity;
|
||||
import com.example.demo.users.service.UserService;
|
||||
|
||||
@SpringBootApplication
|
||||
public class DemoApplication implements CommandLineRunner {
|
||||
@ -24,10 +28,18 @@ public class DemoApplication implements CommandLineRunner {
|
||||
// Бизнес-логика для сущности "Заказ" (Заказ, содержащий книги)
|
||||
private final ItemService itemService;
|
||||
|
||||
// Бизнес-логика для сущности "Пользователь"
|
||||
private final UserService userService;
|
||||
|
||||
// Бизнес-логика для сущности "Сообщение"
|
||||
private final MessageService messageService;
|
||||
|
||||
// Конструктор
|
||||
public DemoApplication(TypeService typeService, ItemService itemService) {
|
||||
public DemoApplication(TypeService typeService, ItemService itemService, UserService userService, MessageService messageService) {
|
||||
this.typeService = typeService;
|
||||
this.itemService = itemService;
|
||||
this.userService = userService;
|
||||
this.messageService = messageService;
|
||||
}
|
||||
|
||||
// Входная точка программы
|
||||
@ -51,6 +63,20 @@ public class DemoApplication implements CommandLineRunner {
|
||||
itemService.create(new ItemEntity(null, type2, 15.00, 6));
|
||||
itemService.create(new ItemEntity(null, type3, 80.00, 6));
|
||||
itemService.create(new ItemEntity(null, type3, 64.00, 3));
|
||||
|
||||
log.info("Create default users values");
|
||||
final var user1 = userService.create(new UserEntity(null, "User1", "password1", "mail1@gmail.com"));
|
||||
final var user2 = userService.create(new UserEntity(null, "User2", "password2", "mail2@gmail.com"));
|
||||
final var user3 = userService.create(new UserEntity(null, "User3", "password3", "mail3@gmail.com"));
|
||||
|
||||
log.info("Create default messages values");
|
||||
messageService.create(new MessageEntity(null, user1, "Message1"));
|
||||
messageService.create(new MessageEntity(null, user1, "Message2"));
|
||||
messageService.create(new MessageEntity(null, user2, "Message3"));
|
||||
messageService.create(new MessageEntity(null, user2, "Message4"));
|
||||
messageService.create(new MessageEntity(null, user2, "Message5"));
|
||||
messageService.create(new MessageEntity(null, user3, "Message6"));
|
||||
messageService.create(new MessageEntity(null, user3, "Message7"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,11 +10,13 @@ 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.messages.model.MessageEntity;
|
||||
import com.example.demo.messages.service.MessageService;
|
||||
import com.example.demo.users.service.UserService;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
|
||||
@ -25,12 +27,16 @@ public class MessageController {
|
||||
// Бизнес-логика для сущности "Сообщение"
|
||||
private final MessageService messageService;
|
||||
|
||||
// Бизнес-логика для сущности "Пользователь"
|
||||
private final UserService userService;
|
||||
|
||||
// Библиотека для преобразования сущности
|
||||
private final ModelMapper modelMapper;
|
||||
|
||||
// Конструктор
|
||||
public MessageController(MessageService messageService, ModelMapper modelMapper) {
|
||||
public MessageController(MessageService messageService, UserService userService, ModelMapper modelMapper) {
|
||||
this.messageService = messageService;
|
||||
this.userService = userService;
|
||||
this.modelMapper = modelMapper;
|
||||
}
|
||||
|
||||
@ -41,13 +47,15 @@ public class MessageController {
|
||||
|
||||
// Преобразовать из DTO в сущность
|
||||
private MessageEntity toEntity(@Valid MessageDto dto) {
|
||||
return modelMapper.map(dto, MessageEntity.class);
|
||||
final MessageEntity entity = modelMapper.map(dto, MessageEntity.class);
|
||||
entity.setSender(userService.get(dto.getSenderId()));
|
||||
return entity;
|
||||
}
|
||||
|
||||
// Получить все элементы
|
||||
@GetMapping
|
||||
public List<MessageDto> getAll() {
|
||||
return messageService.getAll().stream().map(this::toDto).toList();
|
||||
public List<MessageDto> getAll(@RequestParam(name = "senderId", defaultValue = "0") Long senderId) {
|
||||
return messageService.getAll(senderId).stream().map(this::toDto).toList();
|
||||
}
|
||||
|
||||
// Получить элемент по идентификатору
|
||||
|
@ -5,6 +5,7 @@ import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
// DTO для сущности "Сообщение"
|
||||
@ -13,24 +14,17 @@ public class MessageDto {
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
private Long id;
|
||||
|
||||
// Имя отправителя
|
||||
// Идентификатор отправителя сообщения
|
||||
@NotNull
|
||||
@Min(1)
|
||||
private String name;
|
||||
|
||||
// Электронный адрес почты отправителя
|
||||
@NotNull
|
||||
@Min(1)
|
||||
private String email;
|
||||
private Long senderId;
|
||||
|
||||
// Текст сообщения
|
||||
@NotNull
|
||||
@Min(1)
|
||||
@NotBlank
|
||||
private String text;
|
||||
|
||||
// Дата отправки
|
||||
@NotNull
|
||||
@Min(1)
|
||||
@NotBlank
|
||||
private Date date;
|
||||
|
||||
// Получить идентификатор
|
||||
@ -43,24 +37,14 @@ public class MessageDto {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
// Получить имя отправителя
|
||||
public String getName() {
|
||||
return name;
|
||||
// Получить идентификатор отправителя сообщения
|
||||
public Long getSenderId() {
|
||||
return senderId;
|
||||
}
|
||||
|
||||
// Установить имя отправителя
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
// Получить электронный адрес почты отправителя
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
// Установить электронный адрес почты отправителя
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
// Установить идентификатор отправителя сообщения
|
||||
public void setSenderId(Long senderId) {
|
||||
this.senderId = senderId;
|
||||
}
|
||||
|
||||
// Получить текст сообщения
|
||||
|
@ -4,14 +4,12 @@ import java.util.Date;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.example.demo.core.model.BaseEntity;
|
||||
import com.example.demo.users.model.UserEntity;
|
||||
|
||||
// Сущность "Сообщение"
|
||||
public class MessageEntity extends BaseEntity {
|
||||
// Имя отправителя
|
||||
private String name;
|
||||
|
||||
// Электронный адрес почты отправителя
|
||||
private String email;
|
||||
// Отправитель сообщения
|
||||
private UserEntity sender;
|
||||
|
||||
// Текст сообщения
|
||||
private String text;
|
||||
@ -25,32 +23,21 @@ public class MessageEntity extends BaseEntity {
|
||||
}
|
||||
|
||||
// Конструктор с параметрами для создания объекта
|
||||
public MessageEntity(Long id, String name, String email, String text) {
|
||||
public MessageEntity(Long id, UserEntity sender, String text) {
|
||||
super(id);
|
||||
this.name = name;
|
||||
this.email = email;
|
||||
this.sender = sender;
|
||||
this.text = text;
|
||||
this.date = new Date();
|
||||
}
|
||||
|
||||
// Получить имя отправителя
|
||||
public String getName() {
|
||||
return name;
|
||||
// Получить отправителя
|
||||
public UserEntity getSender() {
|
||||
return sender;
|
||||
}
|
||||
|
||||
// Установить имя отправителя
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
// Получить электронный адрес почты отправителя
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
// Установить электронный адрес почты отправителя
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
// Установить отправителя
|
||||
public void setSender(UserEntity sender) {
|
||||
this.sender = sender;
|
||||
}
|
||||
|
||||
// Получить текст сообщения
|
||||
@ -76,7 +63,7 @@ public class MessageEntity extends BaseEntity {
|
||||
// Получить хэш-код объекта
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, name, email, text, date);
|
||||
return Objects.hash(id, sender, text, date);
|
||||
}
|
||||
|
||||
// Сравнить объекты
|
||||
@ -88,8 +75,7 @@ public class MessageEntity extends BaseEntity {
|
||||
return false;
|
||||
final MessageEntity other = (MessageEntity) obj;
|
||||
return Objects.equals(other.getId(), id)
|
||||
&& Objects.equals(other.getName(), name)
|
||||
&& Objects.equals(other.getEmail(), email)
|
||||
&& Objects.equals(other.getSender(), sender)
|
||||
&& Objects.equals(other.getText(), text)
|
||||
&& Objects.equals(other.getDate(), date);
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.example.demo.messages.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -20,9 +21,14 @@ public class MessageService {
|
||||
this.repository = repository;
|
||||
}
|
||||
|
||||
// Получить все элементы
|
||||
public List<MessageEntity> getAll() {
|
||||
return repository.getAll();
|
||||
// Получить все элементы или по заданному фильтру
|
||||
public List<MessageEntity> getAll(Long senderId) {
|
||||
if (Objects.equals(senderId, 0L)) {
|
||||
return repository.getAll();
|
||||
}
|
||||
return repository.getAll().stream()
|
||||
.filter(item -> item.getSender().getId().equals(senderId))
|
||||
.toList();
|
||||
}
|
||||
|
||||
// Получить элемент по идентификатору
|
||||
@ -39,8 +45,7 @@ public class MessageService {
|
||||
// Изменить элемент
|
||||
public MessageEntity update(Long id, MessageEntity entity) {
|
||||
final MessageEntity existsEntity = get(id);
|
||||
existsEntity.setName(entity.getName());
|
||||
existsEntity.setEmail(entity.getEmail());
|
||||
existsEntity.setSender(entity.getSender());
|
||||
existsEntity.setText(entity.getText());
|
||||
return repository.update(existsEntity);
|
||||
}
|
||||
|
@ -0,0 +1,76 @@
|
||||
package com.example.demo.users.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.RestController;
|
||||
|
||||
import com.example.demo.core.configuration.Constants;
|
||||
import com.example.demo.users.model.UserEntity;
|
||||
import com.example.demo.users.service.UserService;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
|
||||
// Контроллер для сущности "Пользователь"
|
||||
@RestController
|
||||
@RequestMapping(Constants.API_URL + "/user")
|
||||
public class UserController {
|
||||
// Бизнес-логика для сущности "Пользователь"
|
||||
private final UserService userService;
|
||||
|
||||
// Библиотека для преобразования сущности
|
||||
private final ModelMapper modelMapper;
|
||||
|
||||
// Конструктор
|
||||
public UserController(UserService userService, ModelMapper modelMapper) {
|
||||
this.userService = userService;
|
||||
this.modelMapper = modelMapper;
|
||||
}
|
||||
|
||||
// Преобразовать из сущности в DTO
|
||||
private UserDto toDto(UserEntity entity) {
|
||||
return modelMapper.map(entity, UserDto.class);
|
||||
}
|
||||
|
||||
// Преобразовать из DTO в сущность
|
||||
private UserEntity toEntity(@Valid UserDto dto) {
|
||||
return modelMapper.map(dto, UserEntity.class);
|
||||
}
|
||||
|
||||
// Получить все элементы
|
||||
@GetMapping
|
||||
public List<UserDto> getAll() {
|
||||
return userService.getAll().stream().map(this::toDto).toList();
|
||||
}
|
||||
|
||||
// Получить элемент по идентификатору
|
||||
@GetMapping("/{id}")
|
||||
public UserDto get(@PathVariable(name = "id") Long id) {
|
||||
return toDto(userService.get(id));
|
||||
}
|
||||
|
||||
// Создать элемент
|
||||
@PostMapping
|
||||
public UserDto create(@RequestBody @Valid UserDto dto) {
|
||||
return toDto(userService.create(toEntity(dto)));
|
||||
}
|
||||
|
||||
// Изменить элемент
|
||||
@PutMapping("/{id}")
|
||||
public UserDto update(@PathVariable(name = "id") Long id, @RequestBody @Valid UserDto dto) {
|
||||
return toDto(userService.update(id, toEntity(dto)));
|
||||
}
|
||||
|
||||
// Удалить элемент
|
||||
@DeleteMapping("/{id}")
|
||||
public UserDto delete(@PathVariable(name = "id") Long id) {
|
||||
return toDto(userService.delete(id));
|
||||
}
|
||||
}
|
64
demo/src/main/java/com/example/demo/users/api/UserDto.java
Normal file
64
demo/src/main/java/com/example/demo/users/api/UserDto.java
Normal file
@ -0,0 +1,64 @@
|
||||
package com.example.demo.users.api;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
||||
// DTO для сущности "Пользователь"
|
||||
public class UserDto {
|
||||
// Идентфикатор
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
private Long id;
|
||||
|
||||
// Имя/логин пользователя
|
||||
@NotBlank
|
||||
private String username;
|
||||
|
||||
// Пароль пользователя
|
||||
@NotBlank
|
||||
private String password;
|
||||
|
||||
// Электронный адрес почты пользователя
|
||||
@NotBlank
|
||||
private String email;
|
||||
|
||||
// Получить идентификатор
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
// Установить идентификатор
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
// Получить имя/логин пользователя
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
// Установить имя/логин пользователя
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
// Получить пароль пользователя
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
// Установить пароль пользователя
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
// Получить электронный адрес почты пользователя
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
// Установить электронный адрес почты пользователя
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
package com.example.demo.users.model;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.example.demo.core.model.BaseEntity;
|
||||
|
||||
// Сущность "Пользователь"
|
||||
public class UserEntity extends BaseEntity {
|
||||
// Имя/логин пользователя
|
||||
private String username;
|
||||
|
||||
// Пароль пользователя
|
||||
private String password;
|
||||
|
||||
// Электронный адрес почты пользователя
|
||||
private String email;
|
||||
|
||||
// Конструктор по умолчанию
|
||||
public UserEntity() {
|
||||
super();
|
||||
}
|
||||
|
||||
// Конструктор с параметрами для создания объекта
|
||||
public UserEntity(Long id, String username, String password, String email) {
|
||||
super(id);
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
// Получить имя/логин пользователя
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
// Установить имя/логин пользователя
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
// Получить пароль пользователя
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
// Установить пароль пользователя
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
// Получить электронный адрес почты пользователя
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
// Установить электронный адрес почты пользователя
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
// Получить хэш-код объекта
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, username, password, email);
|
||||
}
|
||||
|
||||
// Сравнить объекты
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null || getClass() != obj.getClass())
|
||||
return false;
|
||||
final UserEntity other = (UserEntity) obj;
|
||||
return Objects.equals(other.getId(), id)
|
||||
&& Objects.equals(other.getUsername(), username)
|
||||
&& Objects.equals(other.getPassword(), password)
|
||||
&& Objects.equals(other.getEmail(), email);
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.example.demo.users.repository;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.example.demo.core.repository.MapRepository;
|
||||
import com.example.demo.users.model.UserEntity;
|
||||
|
||||
// Хранилище для сущности "Пользователь"
|
||||
@Repository
|
||||
public class UserRepository extends MapRepository<UserEntity> {
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package com.example.demo.users.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.example.demo.core.error.NotFoundException;
|
||||
import com.example.demo.users.model.UserEntity;
|
||||
import com.example.demo.users.repository.UserRepository;
|
||||
|
||||
// Бизнес-логика для сущности "Пользователь"
|
||||
@Service
|
||||
public class UserService {
|
||||
// Хранилище элементов
|
||||
private final UserRepository repository;
|
||||
|
||||
// Конструктор
|
||||
public UserService(UserRepository repository) {
|
||||
this.repository = repository;
|
||||
}
|
||||
|
||||
// Получить все элементы
|
||||
public List<UserEntity> getAll() {
|
||||
return repository.getAll();
|
||||
}
|
||||
|
||||
// Получить элемент по идентификатору
|
||||
public UserEntity get(Long id) {
|
||||
return Optional.ofNullable(repository.get(id))
|
||||
.orElseThrow(() -> new NotFoundException(id));
|
||||
}
|
||||
|
||||
// Создать элемент
|
||||
public UserEntity create(UserEntity entity) {
|
||||
return repository.create(entity);
|
||||
}
|
||||
|
||||
// Изменить элемент
|
||||
public UserEntity update(Long id, UserEntity entity) {
|
||||
final UserEntity existsEntity = get(id);
|
||||
existsEntity.setUsername(entity.getUsername());
|
||||
existsEntity.setPassword(entity.getPassword());
|
||||
existsEntity.setEmail(entity.getEmail());
|
||||
return repository.update(existsEntity);
|
||||
}
|
||||
|
||||
// Удалить элемент
|
||||
public UserEntity delete(Long id) {
|
||||
final UserEntity existsEntity = get(id);
|
||||
return repository.delete(existsEntity);
|
||||
}
|
||||
}
|
@ -11,6 +11,8 @@ import org.springframework.boot.test.context.SpringBootTest;
|
||||
import com.example.demo.core.error.NotFoundException;
|
||||
import com.example.demo.messages.model.MessageEntity;
|
||||
import com.example.demo.messages.service.MessageService;
|
||||
import com.example.demo.users.model.UserEntity;
|
||||
import com.example.demo.users.service.UserService;
|
||||
|
||||
@SpringBootTest
|
||||
@TestMethodOrder(OrderAnnotation.class)
|
||||
@ -18,6 +20,9 @@ public class MessageServiceTests {
|
||||
@Autowired
|
||||
private MessageService messageService;
|
||||
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
@Test
|
||||
void getTest() {
|
||||
Assertions.assertThrows(NotFoundException.class, () -> messageService.get(0L));
|
||||
@ -26,40 +31,39 @@ public class MessageServiceTests {
|
||||
@Test
|
||||
@Order(1)
|
||||
void createTest() {
|
||||
messageService.create(new MessageEntity(null, "Владимир", "vladimir@mail.ru", "Текст"));
|
||||
messageService.create(new MessageEntity(null, "Путин", "putin@mail.ru", "Молодец"));
|
||||
final MessageEntity last = messageService.create(new MessageEntity(null, "Политик", "lider@mail.ru", "Борец"));
|
||||
final UserEntity sender = userService.create(new UserEntity(null, "User1", "password1", "mail1@gmail.com"));
|
||||
messageService.create(new MessageEntity(null, sender, "Message1"));
|
||||
messageService.create(new MessageEntity(null, sender, "Message2"));
|
||||
final MessageEntity last = messageService.create(new MessageEntity(null, sender, "Message3"));
|
||||
|
||||
Assertions.assertEquals(3, messageService.getAll().size());
|
||||
Assertions.assertEquals(3, messageService.getAll(0l).size());
|
||||
Assertions.assertEquals(last, messageService.get(3L));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(2)
|
||||
void updateTest() {
|
||||
final String test = "TEST";
|
||||
final String email = "masenkin73@gmail.com";
|
||||
final String text = "aboba";
|
||||
final UserEntity sender = userService.create(new UserEntity(null, "TESTuser", "password", "mail@gmail.com"));
|
||||
final MessageEntity entity = messageService.get(3L);
|
||||
final String oldName = entity.getName();
|
||||
final MessageEntity newEntity = messageService.update(3L, new MessageEntity(1L, test, email, text));
|
||||
final String oldText = entity.getText();
|
||||
final MessageEntity newEntity = messageService.update(3L, new MessageEntity(1L, sender, "textMessage"));
|
||||
|
||||
Assertions.assertEquals(3, messageService.getAll().size());
|
||||
Assertions.assertEquals(3, messageService.getAll(0L).size());
|
||||
Assertions.assertEquals(newEntity, messageService.get(3L));
|
||||
Assertions.assertEquals(test, newEntity.getName());
|
||||
Assertions.assertNotEquals(oldName, newEntity.getName());
|
||||
Assertions.assertEquals("textMessage", newEntity.getText());
|
||||
Assertions.assertNotEquals(oldText, newEntity.getText());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(3)
|
||||
void deleteTest() {
|
||||
messageService.delete(3L);
|
||||
Assertions.assertEquals(2, messageService.getAll().size());
|
||||
final MessageEntity last = messageService.get(2L);
|
||||
Assertions.assertEquals(2L, last.getId());
|
||||
Assertions.assertEquals(2, messageService.getAll(0L).size());
|
||||
Assertions.assertThrows(NotFoundException.class, () -> messageService.get(3L));
|
||||
|
||||
final MessageEntity newEntity = messageService.create(new MessageEntity(null, "name", "address@email.com", "text"));
|
||||
Assertions.assertEquals(3, messageService.getAll().size());
|
||||
final UserEntity sender = userService.create(new UserEntity(null, "User1", "password1", "mail1@gmail.com"));
|
||||
final MessageEntity newEntity = messageService.create(new MessageEntity(null, sender, "Message"));
|
||||
Assertions.assertEquals(3, messageService.getAll(0L).size());
|
||||
Assertions.assertEquals(4L, newEntity.getId());
|
||||
}
|
||||
}
|
||||
|
65
demo/src/test/java/com/example/demo/UserServiceTests.java
Normal file
65
demo/src/test/java/com/example/demo/UserServiceTests.java
Normal file
@ -0,0 +1,65 @@
|
||||
package com.example.demo;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
|
||||
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.users.model.UserEntity;
|
||||
import com.example.demo.users.service.UserService;
|
||||
|
||||
@SpringBootTest
|
||||
@TestMethodOrder(OrderAnnotation.class)
|
||||
public class UserServiceTests {
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
@Test
|
||||
void getTest() {
|
||||
Assertions.assertThrows(NotFoundException.class, () -> userService.get(0L));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(1)
|
||||
void createTest() {
|
||||
userService.create(new UserEntity(null, "User1", "password1", "mail1@gmail.com"));
|
||||
userService.create(new UserEntity(null, "User2", "password2", "mail2@gmail.com"));
|
||||
final UserEntity last = userService.create(new UserEntity(null, "User3", "password3", "mail3@gmail.com"));
|
||||
|
||||
Assertions.assertEquals(3, userService.getAll().size());
|
||||
Assertions.assertEquals(last, userService.get(3L));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(2)
|
||||
void updateTest() {
|
||||
final String test = "TEST";
|
||||
final String password = "qwerty";
|
||||
final String email = "mail@xmail.ru";
|
||||
final UserEntity entity = userService.get(3L);
|
||||
final String oldUsername = entity.getUsername();
|
||||
final UserEntity newEntity = userService.update(3L, new UserEntity(1L, test, password, email));
|
||||
|
||||
Assertions.assertEquals(3, userService.getAll().size());
|
||||
Assertions.assertEquals(newEntity, userService.get(3L));
|
||||
Assertions.assertEquals(test, newEntity.getUsername());
|
||||
Assertions.assertNotEquals(oldUsername, newEntity.getUsername());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(3)
|
||||
void deleteTest() {
|
||||
userService.delete(3L);
|
||||
Assertions.assertEquals(2, userService.getAll().size());
|
||||
final UserEntity last = userService.get(2L);
|
||||
Assertions.assertEquals(2L, last.getId());
|
||||
|
||||
final UserEntity newEntity = userService.create(new UserEntity(null, "User4", "password4", "mail4@gmail.com"));
|
||||
Assertions.assertEquals(3, userService.getAll().size());
|
||||
Assertions.assertEquals(4L, newEntity.getId());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user