77
88import java .io .InputStream ;
99import java .util .List ;
10- import java .util .Map ;
10+ import java .util .Optional ;
1111
1212import static org .assertj .core .api .Assertions .assertThat ;
1313import static org .assertj .core .api .Assertions .assertThatThrownBy ;
@@ -28,33 +28,41 @@ private void assertSegmentsContain(List<Segment> segments, Segment... expected)
2828 void shouldDeserializeEnabledToggle () throws Exception {
2929 FeatureToggleEvaluation result = objectMapper .readValue (resource ("toggle-enabled-no-segments.json" ), FeatureToggleEvaluation .class );
3030
31- assertThat (result .getName ()).isEqualTo ("My Feature" );
3231 assertThat (result .getSlug ()).isEqualTo ("my-feature" );
3332 assertThat (result .isEnabled ()).isTrue ();
34- assertThat (result .getSegments ()).isEmpty ();
33+ assertThat (result .getEvaluationKey ()).hasValue ("eval-key-1" );
34+ assertThat (result .getSegments ()).isPresent ();
35+ assertThat (result .getSegments ().orElseThrow ()).isEmpty ();
36+ assertThat (result .getClientRolloutPercentage ()).hasValue (100 );
3537 }
3638
3739 @ Test
3840 void shouldDeserializeDisabledToggle () throws Exception {
3941 FeatureToggleEvaluation result = objectMapper .readValue (resource ("toggle-disabled.json" ), FeatureToggleEvaluation .class );
4042
4143 assertThat (result .isEnabled ()).isFalse ();
44+ assertThat (result .getEvaluationKey ()).isEmpty ();
45+ assertThat (result .getSegments ()).isEmpty ();
46+ assertThat (result .getClientRolloutPercentage ()).isEmpty ();
4247 }
4348
4449 @ Test
4550 void shouldDeserializeToggleWithMissingSegmentsField () throws Exception {
4651 FeatureToggleEvaluation result = objectMapper .readValue (resource ("toggle-missing-segments.json" ), FeatureToggleEvaluation .class );
4752
48- assertThat (result .getSegments ()).isNotNull (). isEmpty ();
53+ assertThat (result .getSegments ()).isEmpty ();
4954 }
5055
5156 @ Test
5257 void shouldDeserializeToggleWithSegments () throws Exception {
5358 FeatureToggleEvaluation result = objectMapper .readValue (
5459 resource ("toggle-with-segments.json" ), FeatureToggleEvaluation .class );
5560
56- assertThat (result .getSegments ()).hasSize (2 );
57- assertSegmentsContain (result .getSegments (),
61+ var segments = result .getSegments ().orElseThrow ();
62+
63+ assertThat (segments ).hasSize (2 );
64+ assertSegmentsContain (
65+ segments ,
5866 new Segment ("license-type" , "free" ),
5967 new Segment ("country" , "au" )
6068 );
@@ -86,13 +94,13 @@ void shouldDeserializeListOfTogglesWithVariousFieldCasings() throws Exception {
8694 assertThat (result ).hasSize (3 );
8795 assertThat (result .get (0 ).getSlug ()).isEqualTo ("feature-a" );
8896 assertThat (result .get (0 ).isEnabled ()).isTrue ();
89- assertSegmentsContain (result .get (0 ).getSegments (), new Segment ("license-type" , "free" ));
97+ assertSegmentsContain (result .get (0 ).getSegments (). orElseThrow () , new Segment ("license-type" , "free" ));
9098 assertThat (result .get (1 ).getSlug ()).isEqualTo ("feature-b" );
9199 assertThat (result .get (1 ).isEnabled ()).isTrue ();
92- assertSegmentsContain (result .get (1 ).getSegments (), new Segment ("plan" , "enterprise" ));
100+ assertSegmentsContain (result .get (1 ).getSegments (). orElseThrow () , new Segment ("plan" , "enterprise" ));
93101 assertThat (result .get (2 ).getSlug ()).isEqualTo ("feature-c" );
94102 assertThat (result .get (2 ).isEnabled ()).isTrue ();
95- assertSegmentsContain (result .get (2 ).getSegments (), new Segment ("country" , "au" ));
103+ assertSegmentsContain (result .get (2 ).getSegments (). orElseThrow () , new Segment ("country" , "au" ));
96104 }
97105
98106 @ Test
@@ -121,9 +129,8 @@ void shouldIgnoreExtraneousProperties() throws Exception {
121129 FeatureToggleEvaluation result = objectMapper .readValue (
122130 resource ("toggle-with-extraneous-properties.json" ), FeatureToggleEvaluation .class );
123131
124- assertThat (result .getName ()).isEqualTo ("My Feature" );
125132 assertThat (result .getSlug ()).isEqualTo ("my-feature" );
126133 assertThat (result .isEnabled ()).isTrue ();
127- assertSegmentsContain (result .getSegments (), new Segment ("license-type" , "free" ));
134+ assertSegmentsContain (result .getSegments (). orElseThrow () , new Segment ("license-type" , "free" ));
128135 }
129136}
0 commit comments