2222import io .split .android .client .dtos .Excluded ;
2323import io .split .android .client .dtos .RuleBasedSegment ;
2424import io .split .android .client .dtos .Status ;
25+ import io .split .android .client .storage .mysegments .MySegmentsStorageContainer ;
26+ import io .split .android .engine .experiments .ParsedRuleBasedSegment ;
27+ import io .split .android .engine .experiments .ParserCommons ;
28+ import io .split .android .engine .experiments .RuleBasedSegmentParser ;
2529
2630public class RuleBasedSegmentStorageImplTest {
2731
2832 private RuleBasedSegmentStorageImpl storage ;
2933 private PersistentRuleBasedSegmentStorage mPersistentStorage ;
34+ private RuleBasedSegmentParser mParser ;
3035
3136 @ Before
3237 public void setUp () {
3338 mPersistentStorage = mock (PersistentRuleBasedSegmentStorage .class );
34- storage = new RuleBasedSegmentStorageImpl (mPersistentStorage );
39+ mParser = new RuleBasedSegmentParser (new ParserCommons (mock (MySegmentsStorageContainer .class ), mock (MySegmentsStorageContainer .class ), mock (RuleBasedSegmentStorageProvider .class )));
40+ storage = new RuleBasedSegmentStorageImpl (mPersistentStorage , mParser );
3541 }
3642
3743 @ Test
3844 public void get () {
3945 RuleBasedSegment segment = createRuleBasedSegment ("segment1" );
4046 storage .update (Set .of (segment ), null , 1 );
41- assertNotNull (storage .get ("segment1" ));
47+ assertNotNull (storage .get ("segment1" , "matchingKey" ));
4248 }
4349
4450 @ Test
@@ -51,15 +57,15 @@ public void sequentialUpdate() {
5157 toAdd .add (segment2 );
5258
5359 storage .update (toAdd , null , 2 );
54- assertNotNull (storage .get ("segment1" ));
55- assertNotNull (storage .get ("segment2" ));
60+ assertNotNull (storage .get ("segment1" , "matchingKey" ));
61+ assertNotNull (storage .get ("segment2" , "matchingKey" ));
5662 assertEquals (2 , storage .getChangeNumber ());
5763
5864 Set <RuleBasedSegment > toRemove = new HashSet <>();
5965 toRemove .add (segment1 );
6066 storage .update (null , toRemove , 3 );
61- assertNull (storage .get ("segment1" ));
62- assertNotNull (storage .get ("segment2" ));
67+ assertNull (storage .get ("segment1" , "matchingKey" ));
68+ assertNotNull (storage .get ("segment2" , "matchingKey" ));
6369 assertEquals (3 , storage .getChangeNumber ());
6470 }
6571
@@ -93,7 +99,7 @@ public void clearRemovesAllSegments() {
9399 RuleBasedSegment segment = createRuleBasedSegment ("segment1" );
94100 storage .update (Set .of (segment ), null , 1 );
95101 storage .clear ();
96- assertNull (storage .get ("segment1" ));
102+ assertNull (storage .get ("segment1" , "matchingKey" ));
97103 }
98104
99105 @ Test
@@ -126,15 +132,15 @@ public void segmentRemoval() {
126132 toAdd .add (segment2 );
127133 storage .update (toAdd , null , 1 );
128134
129- assertNotNull (storage .get ("segment1" ));
130- assertNotNull (storage .get ("segment2" ));
135+ assertNotNull (storage .get ("segment1" , "matchingKey" ));
136+ assertNotNull (storage .get ("segment2" , "matchingKey" ));
131137
132138 Set <RuleBasedSegment > toRemove = new HashSet <>();
133139 toRemove .add (createRuleBasedSegment ("segment1" ));
134140 storage .update (null , toRemove , 2 );
135141
136- assertNull (storage .get ("segment1" ));
137- assertNotNull (storage .get ("segment2" ));
142+ assertNull (storage .get ("segment1" , "matchingKey" ));
143+ assertNotNull (storage .get ("segment2" , "matchingKey" ));
138144 }
139145
140146 @ Test
@@ -143,7 +149,7 @@ public void segmentRemovalOfSameSegment() {
143149 Set <RuleBasedSegment > segments = Collections .singleton (segment1 );
144150
145151 storage .update (segments , segments , 1 );
146- assertNull (storage .get ("segment1" ));
152+ assertNull (storage .get ("segment1" , "matchingKey" ));
147153 assertEquals (1 , storage .getChangeNumber ());
148154 }
149155
@@ -173,12 +179,12 @@ public void loadLocalPopulatesValues() {
173179 when (mPersistentStorage .getSnapshot ()).thenReturn (snapshot );
174180
175181 long initialCn = storage .getChangeNumber ();
176- RuleBasedSegment initialSegment1 = storage .get ("segment1" );
182+ ParsedRuleBasedSegment initialSegment1 = storage .get ("segment1" , "matchingKey " );
177183
178184 storage .loadLocal ();
179185
180186 long finalCn = storage .getChangeNumber ();
181- RuleBasedSegment finalSegment1 = storage .get ("segment1" );
187+ ParsedRuleBasedSegment finalSegment1 = storage .get ("segment1" , "matchingKey " );
182188
183189 assertEquals (-1 , initialCn );
184190 assertEquals (1 , finalCn );
0 commit comments