throw new IllegalStateException("Cannot create a RuleDefinition. Missing Session Variable Injections!"); if (null == objectUnderConstruction.getImplementation()) { throw new IllegalStateException("Cannot create a RuleDefinition. Missing Rule Implementation!"); objectUnderConstruction.setName(StringUtils.defaultIfEmpty(objectUnderConstruction.getName(), objectUnderConstruction.getImplementation().getName())); objectUnderConstruction.setDescription(StringUtils.defaultIfEmpty(objectUnderConstruction.getDescription(), EMPTY_DESCRIPTION));
@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 @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 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))); }
ExecutionContext ctx = new ExecutionContext(this, ReflectionUtils.tryInstantiate(getImplementation()), input, variables);