1
package by.andd3dfx.templateapp.validators;
3
import by.andd3dfx.templateapp.dto.ArticleUpdateDto;
4
import org.junit.jupiter.api.Test;
5
import org.junit.jupiter.api.extension.ExtendWith;
6
import org.mockito.InjectMocks;
7
import org.mockito.Mock;
8
import org.mockito.junit.jupiter.MockitoExtension;
10
import javax.validation.ConstraintValidatorContext;
12
import static org.hamcrest.CoreMatchers.is;
13
import static org.hamcrest.MatcherAssert.assertThat;
15
@ExtendWith(MockitoExtension.class)
16
class OnlyOneFieldModifiedValidatorTest {
19
private ConstraintValidatorContext contextMock;
22
private OnlyOneFieldModifiedValidator onlyOneFieldModifiedValidator;
25
void isValidWhenNoFieldsChanged() {
26
ArticleUpdateDto article = new ArticleUpdateDto();
28
assertThat(onlyOneFieldModifiedValidator.isValid(article, contextMock), is(false));
32
void isValidWhenOneFieldChanged_ForTitle() {
33
ArticleUpdateDto article = new ArticleUpdateDto();
34
article.setTitle("Some Title");
36
assertThat(onlyOneFieldModifiedValidator.isValid(article, contextMock), is(true));
40
void isValidWhenOneFieldChanged_ForSummary() {
41
ArticleUpdateDto article = new ArticleUpdateDto();
42
article.setSummary("Some Summary");
44
assertThat(onlyOneFieldModifiedValidator.isValid(article, contextMock), is(true));
48
void isValidWhenOneFieldChanged_ForText() {
49
ArticleUpdateDto article = new ArticleUpdateDto();
50
article.setText("Some Text");
52
assertThat(onlyOneFieldModifiedValidator.isValid(article, contextMock), is(true));
56
void isValidWhenTwoFieldsChanged() {
57
ArticleUpdateDto article = new ArticleUpdateDto();
58
article.setTitle("Some Title");
59
article.setSummary("Some Summary");
61
assertThat(onlyOneFieldModifiedValidator.isValid(article, contextMock), is(false));
65
void isValidWhenThreeFieldsChanged() {
66
ArticleUpdateDto article = new ArticleUpdateDto();
67
article.setTitle("Some Title");
68
article.setSummary("Some Summary");
69
article.setText("Some Text");
71
assertThat(onlyOneFieldModifiedValidator.isValid(article, contextMock), is(false));