diff --git a/easy-rules-core/src/main/java/org/jeasy/rules/core/InferenceRulesEngine.java b/easy-rules-core/src/main/java/org/jeasy/rules/core/InferenceRulesEngine.java index 8c57e07..98581ec 100644 --- a/easy-rules-core/src/main/java/org/jeasy/rules/core/InferenceRulesEngine.java +++ b/easy-rules-core/src/main/java/org/jeasy/rules/core/InferenceRulesEngine.java @@ -35,6 +35,7 @@ import org.slf4j.LoggerFactory; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.TreeSet; @@ -72,6 +73,8 @@ public final class InferenceRulesEngine extends AbstractRulesEngine { @Override public void fire(Rules rules, Facts facts) { + Objects.requireNonNull(rules, "Rules must not be null"); + Objects.requireNonNull(facts, "Facts must not be null"); Set selectedRules; do { LOGGER.debug("Selecting candidate rules based on the following facts: {}", facts); @@ -96,6 +99,8 @@ public final class InferenceRulesEngine extends AbstractRulesEngine { @Override public Map check(Rules rules, Facts facts) { + Objects.requireNonNull(rules, "Rules must not be null"); + Objects.requireNonNull(facts, "Facts must not be null"); return delegate.check(rules, facts); } diff --git a/easy-rules-core/src/test/java/org/jeasy/rules/core/InferenceRulesEngineTest.java b/easy-rules-core/src/test/java/org/jeasy/rules/core/InferenceRulesEngineTest.java index 0104e79..c97ab41 100644 --- a/easy-rules-core/src/test/java/org/jeasy/rules/core/InferenceRulesEngineTest.java +++ b/easy-rules-core/src/test/java/org/jeasy/rules/core/InferenceRulesEngineTest.java @@ -38,6 +38,30 @@ import static org.assertj.core.api.Assertions.assertThat; public class InferenceRulesEngineTest { + @Test(expected = NullPointerException.class) + public void whenFireRules_thenNullRulesShouldNotBeAccepted() { + InferenceRulesEngine engine = new InferenceRulesEngine(); + engine.fire(null, new Facts()); + } + + @Test(expected = NullPointerException.class) + public void whenFireRules_thenNullFactsShouldNotBeAccepted() { + InferenceRulesEngine engine = new InferenceRulesEngine(); + engine.fire(new Rules(), null); + } + + @Test(expected = NullPointerException.class) + public void whenCheckRules_thenNullRulesShouldNotBeAccepted() { + InferenceRulesEngine engine = new InferenceRulesEngine(); + engine.check(null, new Facts()); + } + + @Test(expected = NullPointerException.class) + public void whenCheckRules_thenNullFactsShouldNotBeAccepted() { + InferenceRulesEngine engine = new InferenceRulesEngine(); + engine.check(new Rules(), null); + } + @Test public void testCandidateSelection() { // Given