package in.partake.base; import java.util.HashMap; import in.partake.base.ComparablePair; import static org.hamcrest.Matchers.*; import org.junit.Assert; import org.junit.Test; public class PairTest { @Test public void testCreateAndGet() { ComparablePair<Integer, Integer> pair = new ComparablePair<Integer, Integer>(1, 2); Assert.assertEquals(Integer.valueOf(1), pair.getFirst()); Assert.assertEquals(Integer.valueOf(2), pair.getSecond()); } @Test public void testEquals() { ComparablePair<Integer, Integer> pair1 = new ComparablePair<Integer, Integer>(1, 2); ComparablePair<Integer, Integer> pair2 = new ComparablePair<Integer, Integer>(1, 2); ComparablePair<Integer, Integer> pair3 = new ComparablePair<Integer, Integer>(1, 3); ComparablePair<Integer, Integer> pair4 = new ComparablePair<Integer, Integer>(2, 2); Assert.assertEquals(pair1, pair2); Assert.assertFalse(pair1.equals(pair3)); Assert.assertFalse(pair1.equals(pair4)); Assert.assertFalse(pair1.equals(null)); } @Test public void testCompare() { ComparablePair<Integer, Integer> pair1 = new ComparablePair<Integer, Integer>(1, 2); ComparablePair<Integer, Integer> pair2 = new ComparablePair<Integer, Integer>(1, 2); ComparablePair<Integer, Integer> pair3 = new ComparablePair<Integer, Integer>(1, 3); ComparablePair<Integer, Integer> pair4 = new ComparablePair<Integer, Integer>(2, 2); ComparablePair<Integer, Integer> pair5 = new ComparablePair<Integer, Integer>(0, 2); Assert.assertThat(pair1.compareTo(pair2), is(0)); Assert.assertThat(pair1.compareTo(pair3), is(lessThan(0))); Assert.assertThat(pair1.compareTo(pair4), is(lessThan(0))); Assert.assertThat(pair1.compareTo(pair5), is(greaterThan(0))); } @Test(expected = NullPointerException.class) public void testCompareToNull() { new ComparablePair<Integer, Integer>(1, 2).compareTo(null); } @Test public void testForHashMap() { HashMap<Pair<String, String>, String> map = new HashMap<Pair<String,String>, String>(); map.put(new Pair<String, String>("s1", "t1"), "v1"); map.put(new Pair<String, String>("s1", "t2"), "v2"); map.put(new Pair<String, String>("s2", "t1"), "v3"); map.put(new Pair<String, String>("s2", "t2"), "v4"); Assert.assertThat(map.get(new Pair<String, String>("s1", "t1")), is("v1")); Assert.assertThat(map.get(new Pair<String, String>("s1", "t2")), is("v2")); Assert.assertThat(map.get(new Pair<String, String>("s2", "t1")), is("v3")); Assert.assertThat(map.get(new Pair<String, String>("s2", "t2")), is("v4")); } }