Add null checks in InferenceRulesEngine

Resolves #332
pull/335/head^2
Mahmoud Ben Hassine 4 years ago
parent 4eac660962
commit 8109230ca0
No known key found for this signature in database
GPG Key ID: 2B4156D07E8A1737

@ -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<Rule> 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<Rule, Boolean> 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);
}

@ -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

Loading…
Cancel
Save