introducing clickstream killswitch. adding unit test
This commit is contained in:
@@ -3,8 +3,12 @@ package com.navi.medici.litmus;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyMap;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import com.navi.medici.context.LitmusContext;
|
||||
@@ -156,6 +160,8 @@ public class DefaultLitmusTest {
|
||||
public void testExperimentPresentWithStrategy100RolloutVariant() {
|
||||
var litmusConfigBuilder = TestUtils.buildLitmusConfig();
|
||||
litmusConfigBuilder.litmusContextProvider(litmusContextProvider);
|
||||
litmusConfigBuilder.enableClickStream(true);
|
||||
|
||||
litmus = new DefaultLitmus(litmusConfigBuilder.build(), litmusExperimentRepository);
|
||||
|
||||
when(litmusExperimentRepository.getLitmusExperiment(anyString())).thenReturn(LitmusExperiment.builder()
|
||||
@@ -184,4 +190,38 @@ public class DefaultLitmusTest {
|
||||
assertTrue(result.isEnabled());
|
||||
assertEquals(result.getName(), "variant-1");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testClickStreamKillSwitch() {
|
||||
var litmusConfigBuilder = TestUtils.buildLitmusConfig();
|
||||
litmusConfigBuilder.litmusContextProvider(litmusContextProvider);
|
||||
litmus = new DefaultLitmus(litmusConfigBuilder.build(), litmusExperimentRepository);
|
||||
|
||||
when(litmusExperimentRepository.getLitmusExperiment(anyString())).thenReturn(LitmusExperiment.builder()
|
||||
.name("experiment-1")
|
||||
.enabled(Boolean.TRUE)
|
||||
.vertical("PL")
|
||||
.experimentId("test-experiment-id")
|
||||
.type(ExperimentType.EXPERIMENT)
|
||||
.strategies(List.of(ActivationStrategy.builder()
|
||||
.name("flexibleRollout")
|
||||
.parameters(Map.of("rollout", "100", "stickiness", "userId", "groupId", "test-group-id"))
|
||||
.build()))
|
||||
.variants(List.of(VariantDefinition.builder()
|
||||
.name("variant-1")
|
||||
.weight(100)
|
||||
.stickiness("userId")
|
||||
.overrides(List.of())
|
||||
.build()))
|
||||
.build());
|
||||
|
||||
when(litmusContextProvider.getContext()).thenReturn(LitmusContext.builder()
|
||||
.userId("test-user-id")
|
||||
.deviceId("test-device-id")
|
||||
.build());
|
||||
var result = litmus.getVariant("experiment-1");
|
||||
assertTrue(result.isEnabled());
|
||||
assertEquals(result.getName(), "variant-1");
|
||||
verify(eventDispatcher, times(0)).publish(any(), any(), any(), any());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user