articles-backend-app
72 строки · 2.3 Кб
1package by.andd3dfx.validators;
2
3import static org.hamcrest.CoreMatchers.is;
4import static org.hamcrest.MatcherAssert.assertThat;
5
6import by.andd3dfx.dto.ArticleUpdateDto;
7import jakarta.validation.ConstraintValidatorContext;
8import org.junit.jupiter.api.Test;
9import org.junit.jupiter.api.extension.ExtendWith;
10import org.mockito.InjectMocks;
11import org.mockito.Mock;
12import org.mockito.junit.jupiter.MockitoExtension;
13
14@ExtendWith(MockitoExtension.class)
15class OnlyOneFieldModifiedValidatorTest {
16
17@Mock
18private ConstraintValidatorContext contextMock;
19
20@InjectMocks
21private OnlyOneFieldModifiedValidator onlyOneFieldModifiedValidator;
22
23@Test
24void isValidWhenNoFieldsChanged() {
25ArticleUpdateDto article = new ArticleUpdateDto();
26
27assertThat(onlyOneFieldModifiedValidator.isValid(article, contextMock), is(false));
28}
29
30@Test
31void isValidWhenOneFieldChanged_ForTitle() {
32ArticleUpdateDto article = new ArticleUpdateDto();
33article.setTitle("Some Title");
34
35assertThat(onlyOneFieldModifiedValidator.isValid(article, contextMock), is(true));
36}
37
38@Test
39void isValidWhenOneFieldChanged_ForSummary() {
40ArticleUpdateDto article = new ArticleUpdateDto();
41article.setSummary("Some Summary");
42
43assertThat(onlyOneFieldModifiedValidator.isValid(article, contextMock), is(true));
44}
45
46@Test
47void isValidWhenOneFieldChanged_ForText() {
48ArticleUpdateDto article = new ArticleUpdateDto();
49article.setText("Some Text");
50
51assertThat(onlyOneFieldModifiedValidator.isValid(article, contextMock), is(true));
52}
53
54@Test
55void isValidWhenTwoFieldsChanged() {
56ArticleUpdateDto article = new ArticleUpdateDto();
57article.setTitle("Some Title");
58article.setSummary("Some Summary");
59
60assertThat(onlyOneFieldModifiedValidator.isValid(article, contextMock), is(false));
61}
62
63@Test
64void isValidWhenThreeFieldsChanged() {
65ArticleUpdateDto article = new ArticleUpdateDto();
66article.setTitle("Some Title");
67article.setSummary("Some Summary");
68article.setText("Some Text");
69
70assertThat(onlyOneFieldModifiedValidator.isValid(article, contextMock), is(false));
71}
72}
73