private void getApiValue(List<Rule> rules) { Value value = new Value(14, 18, null, null, null, null, null, null); rules.add(new Rule(Toggle.ENABLED, ruleMetadata, value)); }
@Test public void getRuleMatchedResponseDecision_disabled_returnsDisabled() { Toggle toggle = new Toggle(context); Value value = new Value(14, 16, null, null, null, null, null, null); Rule rule = new Rule(Toggle.DISABLED, ruleMetadata, value); ResponseDecisionMeta responseDecisionMeta = toggle.getRuleMatchedResponseDecision(rule); // assert the state assertThat(responseDecisionMeta.state).isEqualTo(Toggle.DISABLED); // assert the ruleMetadata assertThat(responseDecisionMeta.ruleMetadata).isEqualTo(ruleMetadata); }
@Test public void getRuleMatchedResponseDecision_enabled_returnsEnabled() { Toggle toggle = new Toggle(context); Value value = new Value(14, 16, null, null, null, null, null, null); Rule rule = new Rule(Toggle.ENABLED, ruleMetadata, value); ResponseDecisionMeta responseDecisionMeta = toggle.getRuleMatchedResponseDecision(rule); // assert the state assertThat(responseDecisionMeta.state).isEqualTo(Toggle.ENABLED); // assert the ruleMetadata assertThat(responseDecisionMeta.ruleMetadata).isEqualTo(ruleMetadata); }
@NonNull private static Config getStandardConfig(String metadata) { List<Rule> rules = new ArrayList<>(); Value value1 = new Value(14, 18, null, null, null, null, null, null); Value value2 = new Value(null, null, null, null, 1453196880000L, null, null, null); rules.add(new Rule(Toggle.DISABLED, metadata, value1)); rules.add(new Rule(Toggle.DISABLED, metadata, value2)); Feature featureVideo = new Feature("video", null, Toggle.ENABLED, featureMetadata, rules); Feature featureAudio = new Feature("audio", Toggle.ENABLED, null, featureMetadata, rules); Feature featureSpeech = new Feature("speech", null, Toggle.DISABLED, featureMetadata, rules); List<Feature> features = new ArrayList<>(); features.add(featureVideo); features.add(featureAudio); features.add(featureSpeech); return new Config("myapp", features); }
@Test public void matchRule_apiLevelCheck_correct_returnsTrue() { PowerMockito.spy(RuleMatcher.class); Mockito.when(RuleMatcher.getBuildVersion()).thenReturn(22); Rule rule = new Rule(Toggle.DISABLED, null, new Value(14, null, null, null, null, null, null, null)); boolean result = RuleMatcher.matchRule(rule); assertThat(result).isTrue(); }
@Test public void handleFeature_stateNull_ruleMatched_disabledForRightAPILevel_returnsDisabled() { Toggle toggle = new Toggle(context); List<Rule> rules = new ArrayList<>(); Value value = new Value(14, 18, null, null, null, null, null, null); rules.add(new Rule(Toggle.DISABLED, ruleMetadata, value)); Feature feature = new Feature("video", null, Toggle.ENABLED, featureMetadata, rules); CheckRequest checkRequest = new CheckRequest(toggle, "video", null, null, false, null); PowerMockito.spy(RuleMatcher.class); Mockito.when(RuleMatcher.getBuildVersion()).thenReturn(16); ResponseDecisionMeta responseDecisionMeta = toggle.handleFeature(feature, checkRequest); // assert the state and ruleMetadata assertThat(responseDecisionMeta.state).isEqualTo(Toggle.DISABLED); assertThat(responseDecisionMeta.ruleMetadata).isEqualTo(ruleMetadata); }
@Test public void matchRule_apiLevelCheck_incorrect_returnsFalse() { PowerMockito.spy(RuleMatcher.class); Mockito.when(RuleMatcher.getBuildVersion()).thenReturn(22); Rule rule = new Rule(Toggle.DISABLED, null, new Value(23, null, null, null, null, null, null, null)); boolean result = RuleMatcher.matchRule(rule); assertThat(result).isFalse(); }
@Test public void handleFeature_stateNull_ruleNotMatched_defaultNull_featureCheckRequestDefault_enabled_returnsEnabled() { Toggle toggle = new Toggle(context); List<Rule> rules = new ArrayList<>(); Value value = new Value(14, 18, null, null, null, null, null, null); rules.add(new Rule(Toggle.DISABLED, ruleMetadata, value)); Feature feature = new Feature("video", null, null, featureMetadata, rules); CheckRequest checkRequest = new CheckRequest(toggle, "video", null, Toggle.ENABLED, false, null); PowerMockito.spy(RuleMatcher.class); Mockito.when(RuleMatcher.getBuildVersion()).thenReturn(20); ResponseDecisionMeta responseDecisionMeta = toggle.handleFeature(feature, checkRequest); // assert the state and ruleMetadata assertThat(responseDecisionMeta.state).isEqualTo(Toggle.ENABLED); assertThat(responseDecisionMeta.ruleMetadata).isNull(); }
@Test public void handleFeature_stateNull_ruleNotMatched_defaultDisabled_returnsDisabled() { Toggle toggle = new Toggle(context); List<Rule> rules = new ArrayList<>(); Value value = new Value(14, 18, null, null, null, null, null, null); rules.add(new Rule(Toggle.ENABLED, ruleMetadata, value)); Feature feature = new Feature("video", null, Toggle.DISABLED, featureMetadata, rules); CheckRequest checkRequest = new CheckRequest(toggle, "video", null, null, false, null); PowerMockito.spy(RuleMatcher.class); Mockito.when(RuleMatcher.getBuildVersion()).thenReturn(20); ResponseDecisionMeta responseDecisionMeta = toggle.handleFeature(feature, checkRequest); // assert the state and ruleMetadata assertThat(responseDecisionMeta.state).isEqualTo(Toggle.DISABLED); assertThat(responseDecisionMeta.ruleMetadata).isNull(); }
@Test(expected = IllegalStateException.class) public void handleFeature_stateNull_ruleMatched_nullForRightAPILevel_throwsException() { Toggle toggle = new Toggle(context); List<Rule> rules = new ArrayList<>(); Value value = new Value(14, 18, null, null, null, null, null, null); rules.add(new Rule(null, ruleMetadata, value)); Feature feature = new Feature("video", null, Toggle.ENABLED, featureMetadata, rules); CheckRequest checkRequest = new CheckRequest(toggle, "video", null, null, false, null); PowerMockito.spy(RuleMatcher.class); Mockito.when(RuleMatcher.getBuildVersion()).thenReturn(16); toggle.handleFeature(feature, checkRequest); }
@Test public void handleFeature_stateNull_ruleNotMatched_defaultEnabled_returnsEnabled() { Toggle toggle = new Toggle(context); List<Rule> rules = new ArrayList<>(); Value value = new Value(14, 18, null, null, null, null, null, null); rules.add(new Rule(Toggle.DISABLED, ruleMetadata, value)); Feature feature = new Feature("video", null, Toggle.ENABLED, featureMetadata, rules); CheckRequest checkRequest = new CheckRequest(toggle, "video", null, null, false, null); PowerMockito.spy(RuleMatcher.class); Mockito.when(RuleMatcher.getBuildVersion()).thenReturn(20); ResponseDecisionMeta responseDecisionMeta = toggle.handleFeature(feature, checkRequest); // assert the state and ruleMetadata assertThat(responseDecisionMeta.state).isEqualTo(Toggle.ENABLED); assertThat(responseDecisionMeta.ruleMetadata).isNull(); }
@Test public void handleFeature_stateNull_ruleNotMatched_defaultNull_returnsEnabled() { Toggle toggle = new Toggle(context); List<Rule> rules = new ArrayList<>(); Value value = new Value(14, 18, null, null, null, null, null, null); rules.add(new Rule(Toggle.DISABLED, ruleMetadata, value)); Feature feature = new Feature("video", null, null, featureMetadata, rules); CheckRequest checkRequest = new CheckRequest(toggle, "video", null, null, false, null); PowerMockito.spy(RuleMatcher.class); Mockito.when(RuleMatcher.getBuildVersion()).thenReturn(20); ResponseDecisionMeta responseDecisionMeta = toggle.handleFeature(feature, checkRequest); // assert the state and ruleMetadata assertThat(responseDecisionMeta.state).isEqualTo(Toggle.DEFAULT_STATE); assertThat(responseDecisionMeta.ruleMetadata).isNull(); }
@Test public void handleFeature_stateNull_ruleNotMatched_defaultNull_featureCheckRequestDefault_disabled_returnsDisabled() { Toggle toggle = new Toggle(context); List<Rule> rules = new ArrayList<>(); Value value = new Value(14, 18, null, null, null, null, null, null); rules.add(new Rule(Toggle.DISABLED, ruleMetadata, value)); Feature feature = new Feature("video", null, null, featureMetadata, rules); CheckRequest checkRequest = new CheckRequest(toggle, "video", null, Toggle.DISABLED, false, null); PowerMockito.spy(RuleMatcher.class); Mockito.when(RuleMatcher.getBuildVersion()).thenReturn(20); ResponseDecisionMeta responseDecisionMeta = toggle.handleFeature(feature, checkRequest); // assert the state and ruleMetadata assertThat(responseDecisionMeta.state).isEqualTo(Toggle.DISABLED); assertThat(responseDecisionMeta.ruleMetadata).isNull(); }
@Test public void matchRule_apiLevelMixMaxCheck_appversionMixMaxCheck_correct_returnsTrue() { PowerMockito.spy(RuleMatcher.class); intializeBuildVersion18AndVersionCode100(); Rule rule = new Rule(Toggle.DISABLED, null, new Value(14, 22, 90, 110, null, null, null, null)); boolean result = RuleMatcher.matchRule(rule); assertThat(result).isTrue(); }
@Test public void matchRule_apiLevelMixMaxCheck_appversionMixMaxCheck_incorrect_returnsFalse() { PowerMockito.spy(RuleMatcher.class); intializeBuildVersion18AndVersionCode100(); Rule rule = new Rule(Toggle.DISABLED, null, new Value(14, 22, 110, 120, null, null, null, null)); boolean result = RuleMatcher.matchRule(rule); assertThat(result).isFalse(); }
@Test public void matchRule_apiLevelMixMaxCheck_incorrect_returnsFalse() { PowerMockito.spy(RuleMatcher.class); initializeBuildVersion18(); Rule rule = new Rule(Toggle.DISABLED, null, new Value(14, 16, null, null, null, null, null, null)); boolean result = RuleMatcher.matchRule(rule); assertThat(result).isFalse(); }
@Test public void matchRule_apiLevelMixMaxCheck_correct_returnsTrue() { PowerMockito.spy(RuleMatcher.class); initializeBuildVersion18(); Rule rule = new Rule(Toggle.DISABLED, null, new Value(14, 22, null, null, null, null, null, null)); boolean result = RuleMatcher.matchRule(rule); assertThat(result).isTrue(); }
@Test(expected = IllegalStateException.class) public void getRuleMatchedResponseDecision_null_throwsException() { Toggle toggle = new Toggle(context); Value value = new Value(14, 16, null, null, null, null, null, null); Rule rule = new Rule(null, ruleMetadata, value); toggle.getRuleMatchedResponseDecision(rule); }
@Test public void matchRule_apiLevelMixMaxCheck_appversionMixMaxCheck_dateMixMaxCheck_correct_returnsTrue() { PowerMockito.spy(RuleMatcher.class); PowerMockito.spy(System.class); initializeCurrentTimeBasic(); intializeBuildVersion18AndVersionCode100(); Rule rule = new Rule(Toggle.DISABLED, null, new Value(14, 22, 90, 110, 1450000000000L, 1459990000000L, null, null)); boolean result = RuleMatcher.matchRule(rule); assertThat(result).isTrue(); }
@Test public void matchRule_apiLevelMixMaxCheck_appversionMixMaxCheck_dateMixMaxCheck_incorrect_returnsFalse() { PowerMockito.spy(RuleMatcher.class); PowerMockito.spy(System.class); initializeCurrentTimeBasic(); intializeBuildVersion18AndVersionCode100(); Rule rule = new Rule(Toggle.DISABLED, null, new Value(14, 22, 90, 110, 1453199990000L, 1453199999999L, null, null)); boolean result = RuleMatcher.matchRule(rule); assertThat(result).isFalse(); }