package mf;
/*Generated by MPS */
import junit.framework.TestCase;
import junit.framework.Assert;
import junit.textui.TestRunner;
public abstract class TemporalCollectionTester extends TestCase {
protected TemporalCollection mySubject;
public TemporalCollectionTester(String name) {
super(name);
}
@Override
public void setUp() {
createSubject();
mySubject.put(new MfDate(1999, 8, 1), "aug");
mySubject.put(new MfDate(1999, 9, 1), "sep");
mySubject.put(new MfDate(1999, 10, 1), "oct-nov");
mySubject.put(new MfDate(1999, 12, 30), "after dec ish");
}
protected abstract void createSubject();
public void testInitial() {
try {
mySubject.get(1999, 7, 31);
Assert.fail();
} catch (Exception correctResponse) {
}
}
public void testOneDate() {
mySubject = new SingleTemporalCollection();
mySubject.put(new MfDate(1999, 9, 1), "sep");
Assert.assertEquals("sep", mySubject.get(1999, 9, 1));
Assert.assertEquals("sep", mySubject.get(2000, 8, 29));
}
public void testSimple() {
Assert.assertEquals("oct-nov", mySubject.get(1999, 10, 1));
Assert.assertEquals("oct-nov", mySubject.get(1999, 12, 29));
Assert.assertEquals("after dec ish", mySubject.get(1999, 12, 30));
Assert.assertEquals("after dec ish", mySubject.get(2000, 11, 1));
}
public void testTooEarly() {
try {
mySubject.get(1999, 7, 31);
Assert.fail("succeeded in gettng a value before first date");
} catch (IllegalArgumentException e) {
}
}
public void testSimpleChange() {
mySubject.put(new MfDate(1999, 7, 1), "jul");
Assert.assertEquals("jul", mySubject.get(1999, 7, 1));
Assert.assertEquals("aug", mySubject.get(1999, 8, 1));
Assert.assertEquals("oct-nov", mySubject.get(1999, 10, 1));
Assert.assertEquals("oct-nov", mySubject.get(1999, 12, 29));
Assert.assertEquals("after dec ish", mySubject.get(1999, 12, 30));
Assert.assertEquals("after dec ish", mySubject.get(2000, 11, 1));
}
public static void main(String[] ignore) {
String[] args = {"mf.TemporalCollectionTester"};
TestRunner.main(args);
}
}