introducing clickstream killswitch. adding unit test

This commit is contained in:
chandresh-pancholi
2022-12-22 15:10:46 +05:30
parent 96303e9ceb
commit 54485c8c82

View File

@@ -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());
}
}