package uk.ac.ox.oucs.vle;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* @author Matthew Buckett
*/
public class TermCodeComparatorTest {
private TermCodeComparator comp = new TermCodeComparator();
@Test
public void testDiffYear() {
assertSymmetric("HT13", "HT12");
}
@Test
public void testDiffTerm() {
assertSymmetric("MT13", "TT13");
}
@Test
public void testDiff() {
assertSymmetric("MT13", "TT11");
}
@Test
public void testTermOrder() {
assertSymmetric("MT10", "HT10");
assertSymmetric("MT10", "TT10");
assertSymmetric("TT10", "HT10");
}
@Test
public void testNullTerm() {
assertSymmetric(null, "HT10");
}
@Test
public void testBothNull() {
assertMatch(null, null);
}
@Test
public void testBadTerm() {
assertSymmetric("II10", "HT10");
}
@Test
public void testBadData() {
assertSymmetric("WXYZ", "ABCD");
}
@Test
public void testBadDataNull() {
assertSymmetric("ABCD", null);
}
private void assertSymmetric(String tc1, String tc2) {
assertTrue(tc1+ " should be newer than "+ tc2, comp.compare(tc1, tc2) > 0);
assertTrue(tc2+ " should be older than "+ tc1, comp.compare(tc2, tc1) < 0);
}
private void assertMatch(String tc1, String tc2) {
assertEquals(0, comp.compare(tc1, tc2));
assertEquals(0, comp.compare(tc2, tc1));
}
}