articles-backend-app
61 строка · 1.9 Кб
1package by.andd3dfx.validators;
2
3import static org.hamcrest.CoreMatchers.is;
4import static org.hamcrest.MatcherAssert.assertThat;
5
6import by.andd3dfx.dto.AuthorDto;
7import by.andd3dfx.persistence.dao.AuthorRepository;
8import jakarta.validation.ConstraintValidatorContext;
9import org.junit.jupiter.api.Test;
10import org.junit.jupiter.api.extension.ExtendWith;
11import org.mockito.InjectMocks;
12import org.mockito.Mock;
13import org.mockito.Mockito;
14import org.mockito.junit.jupiter.MockitoExtension;
15
16@ExtendWith(MockitoExtension.class)
17class ExistingAuthorValidatorTest {
18
19@Mock
20private AuthorRepository authorRepositoryMock;
21
22@Mock
23private ConstraintValidatorContext contextMock;
24
25@InjectMocks
26private ExistingAuthorValidator existingAuthorValidator;
27
28@Test
29void isValidForNullAuthor() {
30assertThat(existingAuthorValidator.isValid(null, contextMock), is(false));
31}
32
33@Test
34void isValidForAuthorWithNullId() {
35assertThat(existingAuthorValidator.isValid(new AuthorDto(), contextMock), is(false));
36}
37
38@Test
39void isValidForAuthorWhichNotPresentInDb() {
40AuthorDto author = new AuthorDto();
41final long AUTHOR_ID = 21L;
42author.setId(AUTHOR_ID);
43Mockito.when(authorRepositoryMock.existsById(AUTHOR_ID)).thenReturn(false);
44
45assertThat(existingAuthorValidator.isValid(author, contextMock), is(false));
46
47Mockito.verify(authorRepositoryMock).existsById(AUTHOR_ID);
48}
49
50@Test
51void isValid() {
52AuthorDto author = new AuthorDto();
53final long AUTHOR_ID = 21L;
54author.setId(AUTHOR_ID);
55Mockito.when(authorRepositoryMock.existsById(AUTHOR_ID)).thenReturn(true);
56
57assertThat(existingAuthorValidator.isValid(author, contextMock), is(true));
58
59Mockito.verify(authorRepositoryMock).existsById(AUTHOR_ID);
60}
61}
62