20
20
21
21
import org .junit .Before ;
22
22
import org .junit .Test ;
23
+ import org .junit .experimental .runners .Enclosed ;
24
+ import org .junit .runner .RunWith ;
23
25
24
26
import java .util .List ;
25
27
28
+ import static org .hamcrest .MatcherAssert .assertThat ;
29
+ import static org .hamcrest .Matchers .containsString ;
26
30
import static org .junit .Assert .assertEquals ;
31
+ import static org .junit .Assert .assertThrows ;
27
32
28
- // Mirrored from logstash-core/spec/logstash/settings/string_spec.rb
33
+ @ RunWith ( Enclosed . class )
29
34
public class SettingStringTest {
30
35
31
- private static final List <String > POSSIBLE_VALUES = List .of ("a" , "b" , "c" );
32
- private SettingString sut ;
36
+ public static class WithValueConstraintCase {
37
+ private static final List <String > POSSIBLE_VALUES = List .of ("a" , "b" , "c" );
38
+ private SettingString sut ;
33
39
34
- @ Before
35
- public void setUp () throws Exception {
36
- sut = new SettingString ("mytext" , POSSIBLE_VALUES .iterator ().next (), true , POSSIBLE_VALUES );
37
- }
40
+ @ Before
41
+ public void setUp () throws Exception {
42
+ sut = new SettingString ("mytext" , POSSIBLE_VALUES .iterator ().next (), true , POSSIBLE_VALUES );
43
+ }
44
+
45
+ @ Test
46
+ public void whenSetValueNotPresentInPossibleValuesThenThrowAHelpfulError () {
47
+ IllegalArgumentException ex = assertThrows (IllegalArgumentException .class , () -> {
48
+ sut .set ("d" );
49
+ });
50
+ assertThat (ex .getMessage (), containsString ("Invalid value \" mytext: d\" " ));
51
+ }
52
+
53
+ @ Test
54
+ public void whenSetConstrainedToValuePresentInPossibleValuesThenSetValue () {
55
+ sut .set ("a" );
56
+
57
+ assertEquals ("a" , sut .value ());
58
+ }
38
59
39
- @ Test (expected = IllegalArgumentException .class )
40
- public void whenSetValueNotPresentInPossibleValuesThenThrowAnError () {
41
- sut .set ("d" );
60
+ @ Test
61
+ public void whenSetConstrainedToNullThenThrowAHelpfulError () {
62
+ IllegalArgumentException ex = assertThrows (IllegalArgumentException .class , () -> {
63
+ sut .set (null );
64
+ });
65
+ assertThat (ex .getMessage (), containsString ("Setting \" mytext\" must be a String" ));
66
+ }
42
67
}
43
68
44
- @ Test
45
- public void whenSetValuePresentInPossibleValuesThenSetValue () {
46
- sut .set ("a" );
69
+ public static class WithoutValueConstraintCase {
70
+ private SettingString sut ;
71
+
72
+ @ Before
73
+ public void setUp () throws Exception {
74
+ sut = new SettingString ("mytext" , "foo" , true );
75
+ }
76
+
77
+ @ Test
78
+ public void whenSetUnconstrainedToNonNullValueThenSetValue () {
79
+ sut .set ("a" );
80
+
81
+ assertEquals ("a" , sut .value ());
82
+ }
47
83
48
- assertEquals ("a" , sut .value ());
84
+ @ Test
85
+ public void whenSetUnconstrainedToNullThenThrowAHelpfulError () {
86
+ IllegalArgumentException ex = assertThrows (IllegalArgumentException .class , () -> {
87
+ sut .set (null );
88
+ });
89
+ assertThat (ex .getMessage (), containsString ("Setting \" mytext\" must be a String" ));
90
+ }
49
91
}
50
92
}
0 commit comments