blob: 963de243bfd0228510df2817c2125abd83d41226 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008, 2010 VMware Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* VMware Inc. - initial contribution
*******************************************************************************/
package org.eclipse.virgo.util.math;
import org.junit.Test;
import static org.junit.Assert.*;
public class OrderedPairTests {
@Test
public void getters() {
String orange = "orange";
String blue = "blue";
OrderedPair<String, String> o = new OrderedPair<>(orange, blue);
assertSame(orange, o.getFirst());
assertSame(blue, o.getSecond());
assertEquals("toString value unexpected", "(orange, blue)", o.toString());
}
@Test
public void equalsAndHashCode() {
OrderedPair<Integer, Integer> alpha = new OrderedPair<>(1, 2);
OrderedPair<String, String> bravo = new OrderedPair<>("first", "second");
OrderedPair<String, String> charlie = new OrderedPair<>("orange", "blue");
OrderedPair<String, String> delta = new OrderedPair<>("orange", "blue");
assertNotEqualsAndHashCodeNotEqual(alpha, bravo);
assertEqualsAndHashCodeEqual(alpha, alpha);
assertNotEqualsAndHashCodeNotEqual(bravo, charlie);
assertEqualsAndHashCodeEqual(charlie, delta);
assertNotEquals(null, alpha);
assertNotEquals(1, alpha);
}
@Test
public void nullElements() {
OrderedPair<Integer, Integer> abel = new OrderedPair<>(null, null);
OrderedPair<Integer, Integer> baker = new OrderedPair<>(null, null);
OrderedPair<Integer, Integer> charlie = new OrderedPair<>(1, null);
OrderedPair<Integer, Integer> dog = new OrderedPair<>(1, null);
OrderedPair<Integer, Integer> easy = new OrderedPair<>(null, 2);
OrderedPair<Integer, Integer> fox = new OrderedPair<>(null, 2);
OrderedPair<Integer, String> gorilla = new OrderedPair<>(null, null);
assertSame(null, abel.getFirst());
assertSame(null, abel.getSecond());
assertEquals("toString value unexpected", "(null, null)", abel.toString());
assertEqualsAndHashCodeEqual(abel, baker);
assertEqualsAndHashCodeEqual(charlie, dog);
assertEqualsAndHashCodeEqual(easy, fox);
assertNotEqualsAndHashCodeNotEqual(abel, charlie);
assertNotEqualsAndHashCodeNotEqual(charlie, easy);
assertNotEqualsAndHashCodeNotEqual(abel, fox);
assertEqualsAndHashCodeEqual(abel, gorilla);
}
private void assertEqualsAndHashCodeEqual(OrderedPair<?, ?> o, OrderedPair<?, ?> p) {
assertEquals(o, p);
assertEquals(o.hashCode(), p.hashCode());
assertEquals(o.toString(), p.toString());
}
private void assertNotEqualsAndHashCodeNotEqual(OrderedPair<?, ?> o, OrderedPair<?, ?> p) {
assertNotEquals(o, p);
assertNotEquals(o.hashCode(), p.hashCode());
assertNotEquals(o.toString(), p.toString());
}
}