objectUnderConstruction.setDescription(StringUtils.defaultIfEmpty(objectUnderConstruction.getDescription(), EMPTY_DESCRIPTION));
@Test @SuppressWarnings("rawtypes") public void missingDescription() { builder.setActionMethod(actionMethod); builder.setConditionMethods(Arrays.asList(conditionMethod)); builder.setFireCondition(fireCondition); builder.setImplementation(RuleA.class); builder.setName("SomeName"); builder.setSessionVariableInjections(Arrays.asList(sessionVariableInjection)); builder.setTagInjections(Arrays.asList(tagInjection)); RuleDefinition ruleDefinition = builder.build(); assertThat(ruleDefinition.getActionMethod(), equalTo(actionMethod)); assertThat(ruleDefinition.getConditionMethods(), equalTo(Arrays.asList(conditionMethod))); assertThat(ruleDefinition.getDescription(), equalTo(RuleDefinition.EMPTY_DESCRIPTION)); assertThat(ruleDefinition.getFireCondition(), equalTo(fireCondition)); assertThat((Class) ruleDefinition.getImplementation(), equalTo((Class) RuleA.class)); assertThat(ruleDefinition.getName(), equalTo("SomeName")); assertThat(ruleDefinition.getSessionVariableInjections(), equalTo(Arrays.asList(sessionVariableInjection))); assertThat(ruleDefinition.getTagInjections(), equalTo(Arrays.asList(tagInjection))); }
@Test @SuppressWarnings("rawtypes") public void missingName() { builder.setActionMethod(actionMethod); builder.setConditionMethods(Arrays.asList(conditionMethod)); builder.setDescription("Some Description"); builder.setFireCondition(fireCondition); builder.setImplementation(RuleA.class); builder.setSessionVariableInjections(Arrays.asList(sessionVariableInjection)); builder.setTagInjections(Arrays.asList(tagInjection)); RuleDefinition ruleDefinition = builder.build(); assertThat(ruleDefinition.getActionMethod(), equalTo(actionMethod)); assertThat(ruleDefinition.getConditionMethods(), equalTo(Arrays.asList(conditionMethod))); assertThat(ruleDefinition.getDescription(), equalTo("Some Description")); assertThat(ruleDefinition.getFireCondition(), equalTo(fireCondition)); assertThat((Class) ruleDefinition.getImplementation(), equalTo((Class) RuleA.class)); assertThat(ruleDefinition.getName(), equalTo(RuleA.class.getCanonicalName())); assertThat(ruleDefinition.getSessionVariableInjections(), equalTo(Arrays.asList(sessionVariableInjection))); assertThat(ruleDefinition.getTagInjections(), equalTo(Arrays.asList(tagInjection))); }
@Test public void testWithRuleAnnotation() throws Exception { RuleDefinition definition = Rules.define(ValidAndAnnotated.class); assertThat(definition.getName(), is("AnnotatedRule")); assertThat(definition.getDescription(), is("Description")); assertThat(definition.getFireCondition().getTagTypes(), containsInAnyOrder("T1", "T2")); // Test tag injections TagInjection tagInjection = new TagInjection("T1", ValidAndAnnotated.class.getDeclaredField("t1AsTag"), TagValue.InjectionStrategy.BY_TAG); TagInjection tagInjection1 = new TagInjection("T2", ValidAndAnnotated.class.getDeclaredField("t2TagValue"), TagValue.InjectionStrategy.BY_VALUE); assertThat(definition.getTagInjections(), is(notNullValue())); assertThat(definition.getTagInjections(), containsInAnyOrder(tagInjection, tagInjection1)); // Test session variables SessionVariableInjection s1 = new SessionVariableInjection("baseline", false, ValidAndAnnotated.class.getDeclaredField("baseline")); SessionVariableInjection s2 = new SessionVariableInjection("baseline2", true, ValidAndAnnotated.class.getDeclaredField("baseline2")); assertThat(definition.getSessionVariableInjections(), containsInAnyOrder(s1, s2)); // Test action method assertThat(definition.getActionMethod(), is(new ActionMethod(ValidAndAnnotated.class.getDeclaredMethod("action"), "T2", Action.Quantity.SINGLE))); // Test condition method ConditionMethod conditionMethod = new ConditionMethod("myCondition", "No way out", ValidAndAnnotated.class.getDeclaredMethod("condition")); assertThat(definition.getConditionMethods(), containsInAnyOrder(conditionMethod)); }
@Test @SuppressWarnings("rawtypes") public void valid() { builder.setActionMethod(actionMethod); builder.setConditionMethods(Arrays.asList(conditionMethod)); builder.setDescription("Some Description"); builder.setFireCondition(fireCondition); builder.setImplementation(RuleA.class); builder.setName("SomeName"); builder.setSessionVariableInjections(Arrays.asList(sessionVariableInjection)); builder.setTagInjections(Arrays.asList(tagInjection)); RuleDefinition ruleDefinition = builder.build(); assertThat(ruleDefinition.getActionMethod(), equalTo(actionMethod)); assertThat(ruleDefinition.getConditionMethods(), equalTo(Arrays.asList(conditionMethod))); assertThat(ruleDefinition.getDescription(), equalTo("Some Description")); assertThat(ruleDefinition.getFireCondition(), equalTo(fireCondition)); assertThat((Class) ruleDefinition.getImplementation(), equalTo((Class) RuleA.class)); assertThat(ruleDefinition.getName(), equalTo("SomeName")); assertThat(ruleDefinition.getSessionVariableInjections(), equalTo(Arrays.asList(sessionVariableInjection))); assertThat(ruleDefinition.getTagInjections(), equalTo(Arrays.asList(tagInjection))); }
@Test @SuppressWarnings("rawtypes") public void emptyConditionMethods() { builder.setActionMethod(actionMethod); builder.setConditionMethods(Collections.<ConditionMethod> emptyList()); builder.setDescription("Some Description"); builder.setFireCondition(fireCondition); builder.setImplementation(RuleA.class); builder.setName("SomeName"); builder.setSessionVariableInjections(Arrays.asList(sessionVariableInjection)); builder.setTagInjections(Arrays.asList(tagInjection)); RuleDefinition ruleDefinition = builder.build(); assertThat(ruleDefinition.getActionMethod(), equalTo(actionMethod)); assertThat(ruleDefinition.getConditionMethods(), empty()); assertThat(ruleDefinition.getDescription(), equalTo("Some Description")); assertThat(ruleDefinition.getFireCondition(), equalTo(fireCondition)); assertThat((Class) ruleDefinition.getImplementation(), equalTo((Class) RuleA.class)); assertThat(ruleDefinition.getName(), equalTo("SomeName")); assertThat(ruleDefinition.getSessionVariableInjections(), equalTo(Arrays.asList(sessionVariableInjection))); assertThat(ruleDefinition.getTagInjections(), equalTo(Arrays.asList(tagInjection))); }
@Test @SuppressWarnings("rawtypes") public void emptySessionVariables() { builder.setActionMethod(actionMethod); builder.setConditionMethods(Arrays.asList(conditionMethod)); builder.setDescription("Some Description"); builder.setFireCondition(fireCondition); builder.setImplementation(RuleA.class); builder.setName("SomeName"); builder.setSessionVariableInjections(Collections.<SessionVariableInjection> emptyList()); builder.setTagInjections(Arrays.asList(tagInjection)); RuleDefinition ruleDefinition = builder.build(); assertThat(ruleDefinition.getActionMethod(), equalTo(actionMethod)); assertThat(ruleDefinition.getConditionMethods(), equalTo(Arrays.asList(conditionMethod))); assertThat(ruleDefinition.getDescription(), equalTo("Some Description")); assertThat(ruleDefinition.getFireCondition(), equalTo(fireCondition)); assertThat((Class) ruleDefinition.getImplementation(), equalTo((Class) RuleA.class)); assertThat(ruleDefinition.getName(), equalTo("SomeName")); assertThat(ruleDefinition.getSessionVariableInjections(), empty()); assertThat(ruleDefinition.getTagInjections(), equalTo(Arrays.asList(tagInjection))); }