diff --git a/litmus-client/src/test/java/com/navi/medici/litmus/DefaultLitmusTest.java b/litmus-client/src/test/java/com/navi/medici/litmus/DefaultLitmusTest.java index 76a1418..6a6296d 100644 --- a/litmus-client/src/test/java/com/navi/medici/litmus/DefaultLitmusTest.java +++ b/litmus-client/src/test/java/com/navi/medici/litmus/DefaultLitmusTest.java @@ -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()); + } } \ No newline at end of file