Update tests and organize them into packages

pull/3/head
Mahmoud Ben Hassine 11 years ago
parent b44b1777ee
commit dd167ed24f

@ -1,81 +0,0 @@
package io.github.benas.easyrules.core.test;
import io.github.benas.easyrules.api.RulesEngine;
import io.github.benas.easyrules.core.PriorityRulesEngine;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
/**
* Test class for composite priority rule execution.
*
* @author Mahmoud Ben Hassine (md.benhassine@gmail.com)
*/
public class CompositePriorityRuleTest {
private SimplePriorityRule rule1, rule2;
private SimpleCompositePriorityRule compositeRule;
private RulesEngine rulesEngine;
@Before
public void setup(){
rule1 = new SimplePriorityRule("r1","d1",1);
rule2 = new SimplePriorityRule("r2","d2",2);
compositeRule = new SimpleCompositePriorityRule("cp", "crd");
rulesEngine = new PriorityRulesEngine();
}
@Test
public void testCompositeRule() {
compositeRule.addRule(rule1);
compositeRule.addRule(rule2);
rulesEngine.registerRule(compositeRule);
rulesEngine.fireRules();
//Rule 1 should be executed
assertEquals(true, rule1.isExecuted());
//Rule 2 should be executed
assertEquals(true, rule2.isExecuted());
//The composite Rule should be executed
assertEquals(true, compositeRule.isExecuted());
}
@Test
public void testCompositeRuleWithARuleThatEvaluateToFalse() {
compositeRule.addRule(rule1);
rule2 = new SimplePriorityRuleThatEvaluateToFalse("r2","d2",2);
compositeRule.addRule(rule2);
rulesEngine.registerRule(compositeRule);
rulesEngine.fireRules();
//The composite rule and composing rules should not be executed since not all rules conditions evaluate to TRUE
//Rule 1 should not be executed
assertEquals(false, rule1.isExecuted());
//Rule 2 should not be executed
assertEquals(false, rule2.isExecuted());
//The composite Rule not should be executed
assertEquals(false, compositeRule.isExecuted());
}
}

@ -1,5 +1,11 @@
package io.github.benas.easyrules.core.test;
import io.github.benas.easyrules.core.test.annotation.EasyRulesAnnotationTestSuite;
import io.github.benas.easyrules.core.test.composite.CompositeRuleTest;
import io.github.benas.easyrules.core.test.jmx.JmxRuleRegistrationTest;
import io.github.benas.easyrules.core.test.parameters.RulePriorityComparisonTest;
import io.github.benas.easyrules.core.test.parameters.RulePriorityThresholdTest;
import io.github.benas.easyrules.core.test.parameters.SkipOnFirstAppliedRuleTest;
import junit.framework.TestSuite;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -17,7 +23,7 @@ import org.junit.runners.Suite;
SkipOnFirstAppliedRuleTest.class,
JmxRuleRegistrationTest.class,
CompositeRuleTest.class,
CompositePriorityRuleTest.class})
EasyRulesAnnotationTestSuite.class})
public class EasyRulesTestSuite extends TestSuite {
}

@ -1,28 +0,0 @@
package io.github.benas.easyrules.core.test;
import io.github.benas.easyrules.core.CompositePriorityRule;
/**
* Simple composite rule class used for tests.
*
* @author Mahmoud Ben Hassine (md.benhassine@gmail.com)
*/
public class SimpleCompositePriorityRule extends CompositePriorityRule {
protected boolean executed;
public SimpleCompositePriorityRule(String name, String description) {
super(name, description);
}
@Override
public void performActions() throws Exception {
super.performActions();
executed = true;
}
public boolean isExecuted() {
return executed;
}
}

@ -1,35 +0,0 @@
package io.github.benas.easyrules.core.test;
import io.github.benas.easyrules.core.BasicPriorityRule;
/**
* Simple priority rule class used for tests.
*
* @author Mahmoud Ben Hassine (md.benhassine@gmail.com)
*/
public class SimplePriorityRule extends BasicPriorityRule {
/**
* Has the rule been executed? .
*/
protected boolean executed;
public SimplePriorityRule(String name, String description, int priority) {
super(name, description, priority);
}
@Override
public boolean evaluateConditions() {
return true;
}
@Override
public void performActions() throws Exception {
executed = true;
}
public boolean isExecuted() {
return executed;
}
}

@ -1,19 +0,0 @@
package io.github.benas.easyrules.core.test;
/**
* Simple priority rule class used for tests.
*
* @author Mahmoud Ben Hassine (md.benhassine@gmail.com)
*/
public class SimplePriorityRuleThatEvaluateToFalse extends SimplePriorityRule {
public SimplePriorityRuleThatEvaluateToFalse(String name, String description, int priority) {
super(name, description, priority);
}
@Override
public boolean evaluateConditions() {
return false;
}
}

@ -1,19 +0,0 @@
package io.github.benas.easyrules.core.test;
/**
* Simple priority rule class used for tests.
*
* @author Mahmoud Ben Hassine (md.benhassine@gmail.com)
*/
public class SimplePriorityRuleThatThrowsException extends SimplePriorityRule {
public SimplePriorityRuleThatThrowsException(String name, String description, int priority) {
super(name, description, priority);
}
@Override
public void performActions() throws Exception {
throw new Exception("An exception occurred in SimplePriorityRuleThatThrowsException.performActions");
}
}

@ -1,6 +1,5 @@
package io.github.benas.easyrules.core.test;
import io.github.benas.easyrules.core.BasicPriorityRule;
import io.github.benas.easyrules.core.BasicRule;
/**
@ -19,6 +18,10 @@ public class SimpleRule extends BasicRule {
super(name, description);
}
public SimpleRule(String name, String description, int priority) {
super(name, description, priority);
}
@Override
public boolean evaluateConditions() {
return true;

@ -11,6 +11,10 @@ public class SimpleRuleThatEvaluateToFalse extends SimpleRule {
super(name, description);
}
public SimpleRuleThatEvaluateToFalse(String name, String description, int priority) {
super(name, description, priority);
}
@Override
public boolean evaluateConditions() {
return false;

@ -11,6 +11,10 @@ public class SimpleRuleThatThrowsException extends SimpleRule {
super(name, description);
}
public SimpleRuleThatThrowsException(String name, String description, int priority) {
super(name, description, priority);
}
@Override
public void performActions() throws Exception {
throw new Exception("An exception occurred in SimpleRuleThatThrowsException.performActions");

@ -1,8 +1,10 @@
package io.github.benas.easyrules.core.test;
package io.github.benas.easyrules.core.test.composite;
import io.github.benas.easyrules.api.Rule;
import io.github.benas.easyrules.api.RulesEngine;
import io.github.benas.easyrules.core.BasicRule;
import io.github.benas.easyrules.core.DefaultRulesEngine;
import io.github.benas.easyrules.core.test.SimpleRule;
import io.github.benas.easyrules.core.test.SimpleRuleThatEvaluateToFalse;
import org.junit.Before;
import org.junit.Test;
@ -19,7 +21,7 @@ public class CompositeRuleTest {
private SimpleCompositeRule compositeRule;
private RulesEngine rulesEngine;
private RulesEngine<Rule> rulesEngine;
@Before
public void setup(){
@ -33,7 +35,7 @@ public class CompositeRuleTest {
}
@Test
public void testCompositeRule() {
public void compositeRuleAndComposingRulesMustBeExecuted() {
compositeRule.addRule(rule1);
compositeRule.addRule(rule2);
@ -54,7 +56,7 @@ public class CompositeRuleTest {
}
@Test
public void testCompositeRuleWithARuleThatEvaluateToFalse() {
public void compositeRuleMustNotBeExecutedIfAComposingRuleEvaluatesToFalse() {
compositeRule.addRule(rule1);

@ -1,4 +1,4 @@
package io.github.benas.easyrules.core.test;
package io.github.benas.easyrules.core.test.composite;
import io.github.benas.easyrules.core.CompositeRule;

@ -1,12 +1,9 @@
package io.github.benas.easyrules.core.test;
package io.github.benas.easyrules.core.test.jmx;
import io.github.benas.easyrules.api.PriorityRule;
import io.github.benas.easyrules.api.Rule;
import io.github.benas.easyrules.api.RulesEngine;
import io.github.benas.easyrules.core.BasicPriorityRule;
import io.github.benas.easyrules.core.BasicRule;
import io.github.benas.easyrules.core.DefaultRulesEngine;
import io.github.benas.easyrules.core.PriorityRulesEngine;
import org.junit.Before;
import org.junit.Test;
@ -23,16 +20,16 @@ import static org.junit.Assert.assertNotNull;
*/
public class JmxRuleRegistrationTest {
private PriorityRule rule;
private Rule rule;
private PriorityRulesEngine rulesEngine;
private RulesEngine<Rule> rulesEngine;
@Before
public void setup(){
rule = new BasicPriorityRule();
rule = new BasicRule();
rulesEngine = new PriorityRulesEngine();
rulesEngine = new DefaultRulesEngine();
}
@Test

@ -22,10 +22,8 @@
* THE SOFTWARE.
*/
package io.github.benas.easyrules.core.test;
package io.github.benas.easyrules.core.test.parameters;
import io.github.benas.easyrules.api.PriorityRule;
import io.github.benas.easyrules.core.BasicPriorityRule;
import io.github.benas.easyrules.core.BasicRule;
import org.junit.Before;
import org.junit.Test;
@ -38,12 +36,12 @@ import static org.junit.Assert.*;
*/
public class RulePriorityComparisonTest {
private BasicPriorityRule rule1, rule2;
private BasicRule rule1, rule2;
@Before
public void setup(){
rule1 = new BasicPriorityRule("r1","d1",1);
rule2 = new BasicPriorityRule("r2","d2",2);
rule1 = new BasicRule("r1","d1",1);
rule2 = new BasicRule("r2","d2",2);
}
@Test

@ -22,10 +22,12 @@
* THE SOFTWARE.
*/
package io.github.benas.easyrules.core.test;
package io.github.benas.easyrules.core.test.parameters;
import io.github.benas.easyrules.api.Rule;
import io.github.benas.easyrules.api.RulesEngine;
import io.github.benas.easyrules.core.PriorityRulesEngine;
import io.github.benas.easyrules.core.DefaultRulesEngine;
import io.github.benas.easyrules.core.test.SimpleRule;
import org.junit.Before;
import org.junit.Test;
@ -38,26 +40,26 @@ import static org.junit.Assert.assertEquals;
*/
public class RulePriorityThresholdTest {
private SimplePriorityRule rule1, rule2;
private SimpleRule rule1, rule2;
private RulesEngine rulesEngine;
private RulesEngine<Rule> defaultRulesEngine;
@Before
public void setup(){
rule1 = new SimplePriorityRule("r1","d1",1);
rule2 = new SimplePriorityRule("r2","d2",2);
rule1 = new SimpleRule("r1","d1");
rule2 = new SimpleRule("r2","d2");
rulesEngine = new PriorityRulesEngine(1);
defaultRulesEngine = new DefaultRulesEngine();
}
@Test
public void testRulePriorityThreshold() {
public void rulesThatExceedPriorityThresholdMustNotBeExecuted() {
rulesEngine.registerRule(rule1);
rulesEngine.registerRule(rule2);
defaultRulesEngine.registerRule(rule1);
defaultRulesEngine.registerRule(rule2);
rulesEngine.fireRules();
defaultRulesEngine.fireRules();
//Rule 1 should be executed
assertEquals(true, rule1.isExecuted());

@ -22,10 +22,13 @@
* THE SOFTWARE.
*/
package io.github.benas.easyrules.core.test;
package io.github.benas.easyrules.core.test.parameters;
import io.github.benas.easyrules.api.Rule;
import io.github.benas.easyrules.api.RulesEngine;
import io.github.benas.easyrules.core.PriorityRulesEngine;
import io.github.benas.easyrules.core.DefaultRulesEngine;
import io.github.benas.easyrules.core.test.SimpleRule;
import io.github.benas.easyrules.core.test.SimpleRuleThatThrowsException;
import org.junit.Before;
import org.junit.Test;
@ -38,21 +41,21 @@ import static org.junit.Assert.assertEquals;
*/
public class SkipOnFirstAppliedRuleTest {
private SimplePriorityRule rule1, rule2;
private SimpleRule rule1, rule2;
private SimplePriorityRuleThatThrowsException rule0;
private SimpleRuleThatThrowsException rule0;
private RulesEngine rulesEngine;
private RulesEngine<Rule> rulesEngine;
@Before
public void setup(){
rule1 = new SimplePriorityRule("r1","d1",1);
rule2 = new SimplePriorityRule("r2","d2",2);
rule1 = new SimpleRule("r1","d1",1);
rule2 = new SimpleRule("r2","d2",2);
rule0 = new SimplePriorityRuleThatThrowsException("r0","d0",0);
rule0 = new SimpleRuleThatThrowsException("r0","d0",0);
rulesEngine = new PriorityRulesEngine(true);
rulesEngine = new DefaultRulesEngine(true);
}
@Test
Loading…
Cancel
Save