Added changes to unregister rule via ruleName

pull/69/head
Ankit Khandelwal 8 years ago
parent b36365b9bb
commit be98dc5ed7

@ -96,4 +96,5 @@ public interface RulesEngine {
*/ */
void clearRules(); void clearRules();
void unregisterRuleByName(String r1);
} }

@ -130,6 +130,21 @@ class DefaultRulesEngine implements RulesEngine {
return result; return result;
} }
@Override
public void unregisterRuleByName(final String ruleName){
Rule rule = findRuleByName(ruleName);
if(rule != null)
unregisterRule(rule);
}
public Rule findRuleByName(String ruleName){
for(Rule rule : rules){
if(rule.getName().equalsIgnoreCase(ruleName))
return rule;
}
return null;
}
private void sortRules() { private void sortRules() {
rules = new TreeSet<>(rules); rules = new TreeSet<>(rules);
} }

@ -202,6 +202,40 @@ public class DefaultRulesEngineTest {
.containsExactly(rule, anotherRule); .containsExactly(rule, anotherRule);
} }
@Test
public void testUnregisterRule() throws Exception{
rule = new BasicRule("r1","d1",1);
anotherRule = new BasicRule("r2", "d2", 2);
rulesEngine.registerRule(rule);
rulesEngine.registerRule(anotherRule);
rulesEngine.unregisterRule(rule);
assertThat(rulesEngine.getRules())
.isNotNull()
.isNotEmpty()
.hasSize(1)
.containsOnly(anotherRule);
}
@Test
public void testUnregisterRuleByName() throws Exception{
rule = new BasicRule("r1","d1",1);
anotherRule = new BasicRule("r2", "d2", 2);
rulesEngine.registerRule(rule);
rulesEngine.registerRule(anotherRule);
rulesEngine.unregisterRuleByName("r1");
assertThat(rulesEngine.getRules())
.isNotNull()
.isNotEmpty()
.hasSize(1)
.containsOnly(anotherRule);
}
@Test @Test
public void testGetRuleListeners() throws Exception { public void testGetRuleListeners() throws Exception {
rulesEngine = aNewRulesEngine() rulesEngine = aNewRulesEngine()

Loading…
Cancel
Save