spring-boot-2-template

Форк
0
/
OnlyOneFieldModifiedValidatorTest.java 
78 строк · 2.5 Кб
1
package by.andd3dfx.templateapp.validators;
2

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;
9

10
import javax.validation.ConstraintValidatorContext;
11

12
import static org.hamcrest.CoreMatchers.is;
13
import static org.hamcrest.MatcherAssert.assertThat;
14

15
@ExtendWith(MockitoExtension.class)
16
class OnlyOneFieldModifiedValidatorTest {
17

18
    @Mock
19
    private ConstraintValidatorContext contextMock;
20

21
    @InjectMocks
22
    private OnlyOneFieldModifiedValidator onlyOneFieldModifiedValidator;
23

24
    @Test
25
    void isValidWhenNoFieldsChanged() {
26
        var articleUpdateDto = new ArticleUpdateDto();
27

28
        assertThat(onlyOneFieldModifiedValidator.isValid(articleUpdateDto, contextMock), is(false));
29
    }
30

31
    @Test
32
    void isValidWhenOneFieldChanged_ForTitle() {
33
        var articleUpdateDto = ArticleUpdateDto.builder()
34
                .title("Some Title")
35
                .build();
36

37
        assertThat(onlyOneFieldModifiedValidator.isValid(articleUpdateDto, contextMock), is(true));
38
    }
39

40
    @Test
41
    void isValidWhenOneFieldChanged_ForSummary() {
42
        var articleUpdateDto = ArticleUpdateDto.builder()
43
                .summary("Some Summary")
44
                .build();
45

46
        assertThat(onlyOneFieldModifiedValidator.isValid(articleUpdateDto, contextMock), is(true));
47
    }
48

49
    @Test
50
    void isValidWhenOneFieldChanged_ForText() {
51
        var articleUpdateDto = ArticleUpdateDto.builder()
52
                .text("Some Text")
53
                .build();
54

55
        assertThat(onlyOneFieldModifiedValidator.isValid(articleUpdateDto, contextMock), is(true));
56
    }
57

58
    @Test
59
    void isValidWhenTwoFieldsChanged() {
60
        var articleUpdateDto = ArticleUpdateDto.builder()
61
                .title("Some Title")
62
                .summary("Some Summary")
63
                .build();
64

65
        assertThat(onlyOneFieldModifiedValidator.isValid(articleUpdateDto, contextMock), is(false));
66
    }
67

68
    @Test
69
    void isValidWhenThreeFieldsChanged() {
70
        var articleUpdateDto = ArticleUpdateDto.builder()
71
                .title("Some Title")
72
                .summary("Some Summary")
73
                .text("Some Text")
74
                .build();
75

76
        assertThat(onlyOneFieldModifiedValidator.isValid(articleUpdateDto, contextMock), is(false));
77
    }
78
}
79

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.