package org.jhove2.module.assess;
import static org.junit.Assert.assertEquals;
import javax.annotation.Resource;
import org.jhove2.module.format.Validator.Validity;
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 AssessmentResultTest {
private static String name = "TestRule";
private static String description = "The description";
private static String consequent = "The consequent";
private static String alternative = "The alternative";
private static String details = "ANY_OF { reportable0 == value0 => true;reportable1 == value1 => true; }";
/* The AssessmentResult whose fields are being examined */
private AssessmentResult assessmentResult = new AssessmentResult();
/* Construct a Rule object using Spring */
@Resource(name = "MockRule")
public void setRule(Rule rule) {
assessmentResult.setRule(rule);
}
@Test
public void testGetRuleName() {
assertEquals(name, assessmentResult.getRuleName());
}
@Test
public void testGetRuleDescription() {
assertEquals(description, assessmentResult.getRuleDescription());
}
@Test
public void testGetAssessmentDetails() {
Rule rule = assessmentResult.getRule();
for (String predicate : rule.getPredicates()) {
assessmentResult.getPredicateEvaluations().put(predicate, true);
}
String found = assessmentResult.getAssessmentDetails();
assertEquals(details,found);
}
@Test
public void testTrueResult() {
assessmentResult.setBooleanResult(Validity.True);
assertEquals(Validity.True, assessmentResult.getBooleanResult());
assertEquals(consequent, assessmentResult.getNarrativeResult());
}
@Test
public void testFalseResult() {
assessmentResult.setBooleanResult(Validity.False);
assertEquals(Validity.False, assessmentResult.getBooleanResult());
assertEquals(alternative, assessmentResult.getNarrativeResult());
}
}