16
16
17
17
class VariationIdTests {
18
18
19
- private static final String TEST_JSON = "{ p: { s: 'test-salt' }, f: { key1: { v: { b: true }, i: 'fakeId1', p: [] ,r: [] }, key2: { v: { b: false }, i: 'fakeId2', p: [] ,r: [] } } }" ;
19
+ private static final String TEST_JSON = "{ 'p':{ 'u': 'https://cdn-global.configcat.com', 'r': '0 ', 's': 'test-salt'}, 'f':{ 'key1':{ 't':0, 'r':[ { 'c':[ { 'u':{ 'a': 'Email', 'c': 2 , 'l ':[ '@configcat.com' ] } } ], 's':{ 'v': { 'b':true }, 'i': 'rolloutId1' } }, { 'c': [ { 'u' :{ 'a': 'Email', 'c': 2, 'l' : [ '@test.com' ] } } ], 's' : { 'v' : { 'b': false }, 'i': 'rolloutId2' } } ], 'p':[ { 'p':50, 'v' : { 'b': true }, 'i' : 'percentageId1' }, { 'p' : 50, 'v' : { 'b': false }, 'i': 'percentageId2' } ], 'v':{ 'b':true }, 'i': 'fakeId1' }, 'key2': { 't':0, 'v': { 'b': false }, 'i': 'fakeId2' }, 'key3': { 't': 0, 'r':[ { 'c': [ { 'u':{ 'a': 'Email', 'c':2, 'l':[ '@configcat.com' ] } } ], 'p': [{ 'p':50, 'v':{ 'b': true }, 'i' : 'targetPercentageId1' }, { 'p': 50, 'v': { 'b':false }, 'i' : 'targetPercentageId2' } ] } ], 'v':{ 'b': false }, 'i': 'fakeId3' } } }" ;
20
+ private static final String TEST_JSON_INCORRECT = "{ 'p':{ 'u': 'https://cdn-global.configcat.com', 'r': '0 ', 's': 'test-salt' }, 'f' :{ 'incorrect' : { 't': 0, 'r': [ {'c': [ {'u': {'a': 'Email', 'c': 2, 'l': ['@configcat.com'] } } ] } ],'v': {'b': false}, 'i': 'incorrectId' } } }" ;
20
21
private ConfigCatClient client ;
21
22
private MockWebServer server ;
22
23
@@ -64,9 +65,11 @@ void getAllVariationIdsWorks() {
64
65
server .enqueue (new MockResponse ().setResponseCode (200 ).setBody (TEST_JSON ));
65
66
66
67
List <EvaluationDetails <?>> allValueDetails = client .getAllValueDetails (null );
67
- assertEquals (2 , allValueDetails .size ());
68
+ assertEquals (3 , allValueDetails .size ());
68
69
assertEquals ("fakeId1" , allValueDetails .get (0 ).getVariationId ());
69
70
assertEquals ("fakeId2" , allValueDetails .get (1 ).getVariationId ());
71
+ assertEquals ("fakeId3" , allValueDetails .get (2 ).getVariationId ());
72
+
70
73
}
71
74
72
75
@ Test
@@ -82,9 +85,11 @@ void getAllVariationIdsAsyncWorks() throws ExecutionException, InterruptedExcept
82
85
server .enqueue (new MockResponse ().setResponseCode (200 ).setBody (TEST_JSON ));
83
86
84
87
List <EvaluationDetails <?>> allValueDetails = client .getAllValueDetailsAsync (null ).get ();
85
- assertEquals (2 , allValueDetails .size ());
88
+ assertEquals (3 , allValueDetails .size ());
86
89
assertEquals ("fakeId1" , allValueDetails .get (0 ).getVariationId ());
87
90
assertEquals ("fakeId2" , allValueDetails .get (1 ).getVariationId ());
91
+ assertEquals ("fakeId3" , allValueDetails .get (2 ).getVariationId ());
92
+
88
93
}
89
94
90
95
@ Test
@@ -93,6 +98,18 @@ void getKeyAndValueWorks() {
93
98
Map .Entry <String , Boolean > result = client .getKeyAndValue (boolean .class , "fakeId2" );
94
99
assertEquals ("key2" , result .getKey ());
95
100
assertFalse (result .getValue ());
101
+
102
+ Map .Entry <String , Boolean > result2 = client .getKeyAndValue (boolean .class , "percentageId2" );
103
+ assertEquals ("key1" , result2 .getKey ());
104
+ assertFalse (result2 .getValue ());
105
+
106
+ Map .Entry <String , Boolean > result3 = client .getKeyAndValue (boolean .class , "rolloutId1" );
107
+ assertEquals ("key1" , result3 .getKey ());
108
+ assertTrue (result3 .getValue ());
109
+
110
+ Map .Entry <String , Boolean > result4 = client .getKeyAndValue (boolean .class , "targetPercentageId2" );
111
+ assertEquals ("key3" , result4 .getKey ());
112
+ assertFalse (result4 .getValue ());
96
113
}
97
114
98
115
@ Test
@@ -109,4 +126,11 @@ void getKeyAndValueNotFound() {
109
126
Map .Entry <String , Boolean > result = client .getKeyAndValue (boolean .class , "nonexisting" );
110
127
assertNull (result );
111
128
}
129
+
130
+ @ Test
131
+ void getKeyAndValueIncorrectTargetingRule () {
132
+ server .enqueue (new MockResponse ().setResponseCode (200 ).setBody (TEST_JSON_INCORRECT ));
133
+ Map .Entry <String , Boolean > result = client .getKeyAndValue (boolean .class , "targetPercentageId2" );
134
+ assertNull (result );
135
+ }
112
136
}
0 commit comments