package org.jhove2.module.assess;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.List;
import javax.annotation.Resource;
import org.jhove2.module.assess.Rule.Quantor;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:**/mock-rule-config.xml"})
public class RuleTest {
private static String name = "TestRule";
private static String description = "The description";
private static Quantor quantifier = Quantor.ANY_OF;
private static String consequent = "The consequent";
private static String alternative = "The alternative";
private static String predicate0 = "reportable0 == value0";
private static String predicate1 = "reportable1 == value1";
/* The Rule whose fields are being examined */
private Rule rule;
/* Construct a Rule object using Spring */
@Resource(name = "MockRule")
public void setRule(Rule rule) {
this.rule = rule;
}
@Test
public void testGetName() {
assertEquals(name, rule.getName());
}
@Test
public void testGetDescription() {
assertEquals(description, rule.getDescription());
}
@Test
public void testGetQuantifier() {
assertEquals(quantifier, rule.getQuantifier());
}
@Test
public void testGetPredicates() {
List<String> predicates = rule.getPredicates();
assertEquals(predicate0, predicates.get(0));
assertEquals(predicate1, predicates.get(1));
}
@Test
public void testGetConsequent() {
assertEquals(consequent, rule.getConsequent());
}
@Test
public void testGetAlternative() {
assertEquals(alternative, rule.getAlternative());
}
@Test
public void testContainsAssignmentOperator(){
assertTrue(AssessmentResult.containsAssignmentOperator("x = y"));
assertTrue(AssessmentResult.containsAssignmentOperator("x=y"));
assertFalse(AssessmentResult.containsAssignmentOperator("x==y"));
assertFalse(AssessmentResult.containsAssignmentOperator("x!=y"));
assertFalse(AssessmentResult.containsAssignmentOperator("x<=y"));
assertFalse(AssessmentResult.containsAssignmentOperator("x>=y"));
}
}