Update register/unregister methods to take varargs

Issue 
pull/292/head
des committed by Mahmoud Ben Hassine
parent 4dab695deb
commit d50bc39fbe
No known key found for this signature in database
GPG Key ID: 2B4156D07E8A1737

@ -65,29 +65,43 @@ public class Rules implements Iterable<Rule> {
* @param rules to register
*/
public Rules(Object... rules) {
for (Object rule : rules) {
this.register(rule);
}
this.register(rules);
}
/**
* Register a new rule.
*
* @param rule to register, must not be null
* @param rules to register, must not be null
*/
public void register(Object rule) {
Objects.requireNonNull(rule);
rules.add(RuleProxy.asRule(rule));
public void register(Object... rules) {
Objects.requireNonNull(rules);
for (Object rule : rules) {
Objects.requireNonNull(rule);
this.rules.add(RuleProxy.asRule(rule));
}
}
/**
* Unregister a rule.
*
* @param rule to unregister, must not be null
* @param rules to unregister, must not be null
*/
public void unregister(Object... rules) {
Objects.requireNonNull(rules);
for (Object rule : rules) {
Objects.requireNonNull(rule);
this.rules.remove(RuleProxy.asRule(rule));
}
}
/**
* Unregister a set of rules.
*
* @param rulesSet set to unregister, must not be null
*/
public void unregister(Object rule) {
Objects.requireNonNull(rule);
rules.remove(RuleProxy.asRule(rule));
public void unregisterAll(Set<?> rulesSet) {
Objects.requireNonNull(rulesSet);
rulesSet.forEach(this::unregister);
}
/**

@ -129,14 +129,33 @@ public class RulesTest {
assertThat(rules.size()).isEqualTo(0);
}
@Test(expected = NullPointerException.class)
public void whenRegisterNullRule_thenShouldThrowNullPointerException() {
rules.register(null);
@Test
public void register_multiple() {
rules.register(new BasicRule("ruleA"), new BasicRule("ruleB"));
assertThat(rules.size()).isEqualTo(2);
}
@Test
public void unregister_noneLeft() {
rules.register(new BasicRule("ruleA"), new BasicRule("ruleB"));
assertThat(rules.size()).isEqualTo(2);
rules.unregister(new BasicRule("ruleA"), new BasicRule("ruleB"));
assertThat(rules.size()).isEqualTo(0);
}
@Test
public void unregisterAll_oneLeft() {
rules.register(new BasicRule("ruleA"), new BasicRule("ruleB"));
assertThat(rules.size()).isEqualTo(2);
rules.unregister(new BasicRule("ruleA"));
assertThat(rules.size()).isEqualTo(1);
}
@Test(expected = NullPointerException.class)
public void whenUnregisterNullRule_thenShouldThrowNullPointerException() {
rules.unregister(null);
public void whenRegisterNullRule_thenShouldThrowNullPointerException() {
rules.register(null);
}
@org.jeasy.rules.annotation.Rule
@ -147,5 +166,4 @@ public class RulesTest {
@Action
public void then() { }
}
}

Loading…
Cancel
Save