Merge "Refactor test to use Guava EqualsTester"
diff --git a/core/api/src/test/java/org/onlab/onos/net/flow/criteria/CriteriaTest.java b/core/api/src/test/java/org/onlab/onos/net/flow/criteria/CriteriaTest.java
index 6b113a2..e553e66 100644
--- a/core/api/src/test/java/org/onlab/onos/net/flow/criteria/CriteriaTest.java
+++ b/core/api/src/test/java/org/onlab/onos/net/flow/criteria/CriteriaTest.java
@@ -21,12 +21,12 @@
import org.onlab.packet.MacAddress;
import org.onlab.packet.VlanId;
+import com.google.common.testing.EqualsTester;
+
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.notNullValue;
import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
import static org.onlab.junit.UtilityClassChecker.assertThatClassIsUtility;
@@ -121,33 +121,6 @@
}
/**
- * Checks the equals() and toString() methods of a Criterion class.
- *
- * @param c1 first object to compare
- * @param c1match object that should be equal to the first
- * @param c2 object that should be not equal to the first
- * @param clazz Class object for the Criterion subclass
- * @param <T> type of the arguments
- */
- private <T extends Criterion> void checkEqualsAndToString(T c1, T c1match,
- T c2, Class clazz) {
- assertThat(c1, instanceOf(clazz));
- assertThat(c1match, instanceOf(clazz));
- assertThat(c2, instanceOf(clazz));
-
- assertThat(c1, is(equalTo(c1match)));
- assertThat(c1, is(not(equalTo(c2))));
- assertThat(c1, is(not(equalTo(new Object()))));
-
- // Make sure the enumerated type appears in the toString() output and
- // the toString output is unique.
- assertThat(c1.toString(), containsString(c1.type().toString()));
- assertThat(c1.toString(), equalTo(c1match.toString()));
- assertThat(c1.toString(), not(equalTo(c2.toString())));
- }
-
-
- /**
* Check that the Criteria class is a valid utility class.
*/
@Test
@@ -193,17 +166,10 @@
*/
@Test
public void testPortCriterionEquals() {
- checkEqualsAndToString(matchInPort1, sameAsMatchInPort1, matchInPort2,
- Criteria.PortCriterion.class);
- }
-
- /**
- * Test the hashCode() method of the PortCriterion class.
- */
- @Test
- public void testPortCriterionHashCode() {
- assertThat(matchInPort1.hashCode(), is(equalTo(sameAsMatchInPort1.hashCode())));
- assertThat(matchInPort1.hashCode(), is(not(equalTo(matchInPort2.hashCode()))));
+ new EqualsTester()
+ .addEqualityGroup(matchInPort1, sameAsMatchInPort1)
+ .addEqualityGroup(matchInPort2)
+ .testEquals();
}
// EthCriterion class
@@ -239,20 +205,12 @@
*/
@Test
public void testEthCriterionEquals() {
- checkEqualsAndToString(matchEth1, sameAsMatchEth1, matchEth2,
- Criteria.EthCriterion.class);
+ new EqualsTester()
+ .addEqualityGroup(matchEth1, sameAsMatchEth1)
+ .addEqualityGroup(matchEth2)
+ .testEquals();
}
- /**
- * Test the hashCode() method of the EthCriterion class.
- */
- @Test
- public void testEthCriterionHashCode() {
- assertThat(matchEth1.hashCode(), is(equalTo(sameAsMatchEth1.hashCode())));
- assertThat(matchEth1.hashCode(), is(not(equalTo(matchEth2.hashCode()))));
- }
-
-
// TcpPortCriterion class
/**
@@ -286,20 +244,12 @@
*/
@Test
public void testTcpPortCriterionEquals() {
- checkEqualsAndToString(matchTcpPort1, sameAsMatchTcpPort1, matchTcpPort2,
- Criteria.TcpPortCriterion.class);
+ new EqualsTester()
+ .addEqualityGroup(matchTcpPort1, sameAsMatchTcpPort1)
+ .addEqualityGroup(matchTcpPort2)
+ .testEquals();
}
- /**
- * Test the hashCode() method of the TcpPortCriterion class.
- */
- @Test
- public void testTcpPortCriterionHashCode() {
- assertThat(matchTcpPort1.hashCode(), is(equalTo(sameAsMatchTcpPort1.hashCode())));
- assertThat(matchTcpPort1.hashCode(), is(not(equalTo(matchTcpPort2.hashCode()))));
- }
-
-
// EthTypeCriterion class
/**
@@ -321,20 +271,12 @@
*/
@Test
public void testEthTypeCriterionEquals() {
- checkEqualsAndToString(matchEthType1, sameAsMatchEthType1, matchEthType2,
- Criteria.EthTypeCriterion.class);
+ new EqualsTester()
+ .addEqualityGroup(matchEthType1, sameAsMatchEthType1)
+ .addEqualityGroup(matchEthType2)
+ .testEquals();
}
- /**
- * Test the hashCode() method of the EthTypeCriterion class.
- */
- @Test
- public void testEthTypeCriterionHashCode() {
- assertThat(matchInPort1.hashCode(), is(equalTo(sameAsMatchInPort1.hashCode())));
- assertThat(matchInPort1.hashCode(), is(not(equalTo(matchInPort2.hashCode()))));
- }
-
-
// VlanIdCriterion class
/**
@@ -355,17 +297,10 @@
*/
@Test
public void testVlanIdCriterionEquals() {
- checkEqualsAndToString(matchVlanId1, sameAsMatchVlanId1, matchVlanId2,
- Criteria.VlanIdCriterion.class);
- }
-
- /**
- * Test the hashCode() method of the VlanIdCriterion class.
- */
- @Test
- public void testVlanIdCriterionHashCode() {
- assertThat(matchVlanId1.hashCode(), is(equalTo(sameAsMatchVlanId1.hashCode())));
- assertThat(matchVlanId1.hashCode(), is(not(equalTo(matchVlanId2.hashCode()))));
+ new EqualsTester()
+ .addEqualityGroup(matchVlanId1, sameAsMatchVlanId1)
+ .addEqualityGroup(matchVlanId2)
+ .testEquals();
}
// VlanPcpCriterion class
@@ -388,17 +323,10 @@
*/
@Test
public void testVlanPcpCriterionEquals() {
- checkEqualsAndToString(matchVlanPcp1, sameAsMatchVlanPcp1, matchVlanPcp2,
- Criteria.VlanPcpCriterion.class);
- }
-
- /**
- * Test the hashCode() method of the VlnPcpCriterion class.
- */
- @Test
- public void testVlanPcpCriterionHashCode() {
- assertThat(matchVlanPcp1.hashCode(), is(equalTo(sameAsMatchVlanPcp1.hashCode())));
- assertThat(matchVlanPcp1.hashCode(), is(not(equalTo(matchVlanPcp2.hashCode()))));
+ new EqualsTester()
+ .addEqualityGroup(matchVlanPcp1, sameAsMatchVlanPcp1)
+ .addEqualityGroup(matchVlanPcp2)
+ .testEquals();
}
// IpProtocolCriterion class
@@ -421,17 +349,10 @@
*/
@Test
public void testIpProtocolCriterionEquals() {
- checkEqualsAndToString(matchIpProtocol1, sameAsMatchIpProtocol1,
- matchIpProtocol2, Criteria.IPProtocolCriterion.class);
- }
-
- /**
- * Test the hashCode() method of the IpProtocolCriterion class.
- */
- @Test
- public void testIpProtocolCriterionHashCode() {
- assertThat(matchIpProtocol1.hashCode(), is(equalTo(sameAsMatchIpProtocol1.hashCode())));
- assertThat(matchIpProtocol1.hashCode(), is(not(equalTo(matchIpProtocol2.hashCode()))));
+ new EqualsTester()
+ .addEqualityGroup(matchIpProtocol1, sameAsMatchIpProtocol1)
+ .addEqualityGroup(matchIpProtocol2)
+ .testEquals();
}
// IPCriterion class
@@ -467,17 +388,10 @@
*/
@Test
public void testIPCriterionEquals() {
- checkEqualsAndToString(matchIp1, sameAsMatchIp1, matchIp2,
- Criteria.IPCriterion.class);
- }
-
- /**
- * Test the hashCode() method of the IpCriterion class.
- */
- @Test
- public void testIPCriterionHashCode() {
- assertThat(matchIp1.hashCode(), is(equalTo(sameAsMatchIp1.hashCode())));
- assertThat(matchIp1.hashCode(), is(not(equalTo(matchIp2.hashCode()))));
+ new EqualsTester()
+ .addEqualityGroup(matchIp1, sameAsMatchIp1)
+ .addEqualityGroup(matchIp2)
+ .testEquals();
}
// LambdaCriterion class
@@ -500,17 +414,10 @@
*/
@Test
public void testLambdaCriterionEquals() {
- checkEqualsAndToString(matchLambda1, sameAsMatchLambda1, matchLambda2,
- Criteria.LambdaCriterion.class);
- }
-
- /**
- * Test the hashCode() method of the LambdaCriterion class.
- */
- @Test
- public void testLambdaCriterionHashCode() {
- assertThat(matchLambda1.hashCode(), is(equalTo(sameAsMatchLambda1.hashCode())));
- assertThat(matchLambda1.hashCode(), is(not(equalTo(matchLambda2.hashCode()))));
+ new EqualsTester()
+ .addEqualityGroup(matchLambda1, sameAsMatchLambda1)
+ .addEqualityGroup(matchLambda2)
+ .testEquals();
}
// OpticalSignalTypeCriterion class
@@ -533,18 +440,9 @@
*/
@Test
public void testOpticalSignalTypeCriterionEquals() {
- checkEqualsAndToString(matchSignalLambda1, sameAsMatchSignalLambda1,
- matchSignalLambda2,
- Criteria.OpticalSignalTypeCriterion.class);
+ new EqualsTester()
+ .addEqualityGroup(matchSignalLambda1, sameAsMatchSignalLambda1)
+ .addEqualityGroup(matchSignalLambda2)
+ .testEquals();
}
-
- /**
- * Test the hashCode() method of the OpticalSignalTypeCriterion class.
- */
- @Test
- public void testOpticalSignalTypeCriterionHashCode() {
- assertThat(matchSignalLambda1.hashCode(), is(equalTo(sameAsMatchSignalLambda1.hashCode())));
- assertThat(matchSignalLambda1.hashCode(), is(not(equalTo(matchSignalLambda2.hashCode()))));
- }
-
}