Skip to content

Commit

Permalink
Additional query string test
Browse files Browse the repository at this point in the history
  • Loading branch information
gthea committed Sep 14, 2023
1 parent bf8bca2 commit ba26ccd
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,13 @@

import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;

import fake.HttpClientMock;
import fake.HttpResponseMock;
Expand Down Expand Up @@ -46,6 +48,7 @@ public class FlagSetsPollingTest {
private CountDownLatch secondChangeLatch;
private CountDownLatch thirdChangeLatch;
private SplitRoomDatabase mRoomDb;
private volatile String mSplitChangesUri;

@Before
public void setUp() throws Exception {
Expand Down Expand Up @@ -157,6 +160,19 @@ public void featureFlagSetsAreIgnoredWhenSetsAreNotConfigured() throws IOExcepti
assertTrue(awaitHits);
}

@Test
public void queryStringIsBuiltCorrectlyWhenSetsAreConfigured() throws IOException, InterruptedException {
// 1. Initialize a factory with polling and sets set_1 & set_2 configured.
createFactory(mContext, mRoomDb, "set_x", "set_x", "set_3", "set_2", "set_3", "set_ww", "invalid+");

boolean awaitFirst = firstChangeLatch.await(5, TimeUnit.SECONDS);

String uri = mSplitChangesUri;

assertTrue(awaitFirst);
assertEquals("https://sdk.split.io/api/splitChanges?since=-1&sets=set_2,set_3,set_ww,set_x", uri);
}

private SplitFactory createFactory(
Context mContext,
SplitRoomDatabase splitRoomDatabase,
Expand All @@ -169,6 +185,8 @@ private SplitFactory createFactory(
.impressionsCountersRefreshRate(1000)
.syncConfig(SyncConfig.builder()
.addSplitFilter(SplitFilter.bySet(Arrays.asList(sets)))
.addSplitFilter(SplitFilter.byName(Arrays.asList("workm", "workm_set_3"))) // added to test that this filter is ignored
.addSplitFilter(SplitFilter.byPrefix(Collections.singletonList("pref"))) // added to test that this filter is ignored
.build())
.featuresRefreshRate(2)
.streamingEnabled(false)
Expand All @@ -177,8 +195,8 @@ private SplitFactory createFactory(

Map<String, IntegrationHelper.ResponseClosure> responses = new HashMap<>();
responses.put("splitChanges", (uri, httpMethod, body) -> {
mSplitChangesUri = uri.toString();
String since = getSinceFromUri(uri);

hitsLatch.countDown();
if (since.equals("-1")) {
firstChangeLatch.countDown();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ private ProcessedSplitChange buildProcessedSplitChange(List<Split> featureFlags,
FeatureFlagProcessStrategy processStrategy = getProcessStrategy(mSplitFilter);

for (Split featureFlag : featureFlags) {
if (featureFlag.name == null) {
if (featureFlag == null || featureFlag.name == null) {
continue;
}

Expand Down

0 comments on commit ba26ccd

Please sign in to comment.