package edu.umd.cs.findbugs.workflow;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
import junit.framework.TestCase;
import edu.umd.cs.findbugs.AppVersion;
public class FindSeqNumTest extends TestCase {
Map<String, AppVersion> versionNames;
SortedMap<Long, AppVersion> timeStamps;
@Override
protected void setUp() throws Exception {
super.setUp();
versionNames = new HashMap<String, AppVersion>();
timeStamps = new TreeMap<Long, AppVersion>();
Set<AppVersion> versions = new HashSet<AppVersion>();
SimpleDateFormat format = new SimpleDateFormat("MMMMM dd, yyyy", Locale.ENGLISH);
versions.add(new AppVersion(0, format.parse("June 1, 2005"), "v1.0"));
versions.add(new AppVersion(1, format.parse("June 10, 2005"), "v1.1"));
versions.add(new AppVersion(2, format.parse("June 20, 2005"), "v2.0"));
for (AppVersion v : versions) {
versionNames.put(v.getReleaseName(), v);
timeStamps.put(v.getTimestamp(), v);
}
}
public void test0() {
assertEquals(0, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "0", true, 3));
}
public void testminusOne() {
assertEquals(3, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "-1", true, 3));
}
public void testminusTwo() {
assertEquals(2, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "-2", true, 3));
}
public void testLast() {
assertEquals(3, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "last", true, 3));
}
public void testlastVersion() {
assertEquals(3, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "lastVersion", true, 3));
}
public void test1() {
assertEquals(1, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "1", true, 3));
}
public void testV1_0() {
assertEquals(0, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "v1.0", true, 3));
}
public void testV1_1() {
assertEquals(1, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "v1.1", true, 3));
}
public void testV2_0() {
assertEquals(2, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "v2.0", true, 3));
}
public void testV2_1() {
try {
Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "v2.1", true, 0);
assertTrue("Didn't throw IllegalArgumentException", false);
} catch (IllegalArgumentException e) {
// we expected this;
}
}
public void testAfterMay5() {
assertEquals(0, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "5/5/2005", true, 3));
}
public void testAfterJune5() {
assertEquals(1, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "6/5/2005", true, 3));
}
public void testAfterJune15() {
assertEquals(2, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "June 15, 2005", true, 3));
}
public void testAfterJune25() {
assertEquals(Long.MAX_VALUE, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "June 25, 2005", true, 3));
}
public void testBeforeMay5() {
assertEquals(Long.MIN_VALUE, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "5/5/2005", false, 3));
}
public void testBeforeJune5() {
assertEquals(0, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "6/5/2005", false, 3));
}
public void testBeforeJune15() {
assertEquals(1, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "June 15, 2005", false, 3));
}
public void testBeforeJune25() {
assertEquals(2, Filter.FilterCommandLine.getVersionNum(versionNames, timeStamps, "June 25, 2005", false, 3));
}
}