diff --git a/helix-rest/pom.xml b/helix-rest/pom.xml index ac986da977a..e3cfad6b8e5 100644 --- a/helix-rest/pom.xml +++ b/helix-rest/pom.xml @@ -184,6 +184,12 @@ swagger-models 1.6.4 + + org.skyscreamer + jsonassert + 1.5.1 + test + diff --git a/helix-rest/src/test/java/org/apache/helix/rest/server/TestResourceAssignmentOptimizerAccessor.java b/helix-rest/src/test/java/org/apache/helix/rest/server/TestResourceAssignmentOptimizerAccessor.java index 63afe8a2433..aa1e4993e1c 100644 --- a/helix-rest/src/test/java/org/apache/helix/rest/server/TestResourceAssignmentOptimizerAccessor.java +++ b/helix-rest/src/test/java/org/apache/helix/rest/server/TestResourceAssignmentOptimizerAccessor.java @@ -38,7 +38,7 @@ import org.apache.helix.model.IdealState; import org.apache.helix.model.InstanceConfig; import org.apache.helix.rest.server.resources.helix.ResourceAssignmentOptimizerAccessor; -import org.testng.Assert; +import org.json.JSONException;import org.skyscreamer.jsonassert.JSONAssert;import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -99,7 +99,7 @@ public void afterClass() { } @Test - public void testComputePartitionAssignment() throws IOException { + public void testComputePartitionAssignment() throws IOException, JSONException { System.out.println("Start test :" + TestHelper.getTestMethodName()); // Test AddInstances, RemoveInstances and SwapInstances @@ -121,8 +121,7 @@ public void testComputePartitionAssignment() throws IOException { Assert.assertTrue(headers.containsKey(ResourceAssignmentOptimizerAccessor.RESPONSE_HEADER_KEY)); Assert.assertFalse( headers.get(ResourceAssignmentOptimizerAccessor.RESPONSE_HEADER_KEY).isEmpty()); - Assert.assertEquals(headers.get(ResourceAssignmentOptimizerAccessor.RESPONSE_HEADER_KEY).get(0), - "{instanceFilter=[], resourceFilter=[], returnFormat=IdealStateFormat}"); + JSONAssert.assertEquals((String) headers.get(ResourceAssignmentOptimizerAccessor.RESPONSE_HEADER_KEY).get(0), "{instanceFilter=[], resourceFilter=[], returnFormat=IdealStateFormat}", false); // Test partitionAssignment InstanceFilter String payload2 = "{\"Options\" : { \"InstanceFilter\" : [\"" + liveInstances.get(0) + "\" , \"" @@ -142,18 +141,13 @@ public void testComputePartitionAssignment() throws IOException { MultivaluedMap headers2 = response2.getHeaders(); Assert .assertTrue(headers2.containsKey(ResourceAssignmentOptimizerAccessor.RESPONSE_HEADER_KEY)); - List partitionAssignmentMetadata2 = - headers2.get(ResourceAssignmentOptimizerAccessor.RESPONSE_HEADER_KEY); + List partitionAssignmentMetadata2 = headers2.get(ResourceAssignmentOptimizerAccessor.RESPONSE_HEADER_KEY); Assert.assertFalse( headers2.get(ResourceAssignmentOptimizerAccessor.RESPONSE_HEADER_KEY).isEmpty()); - Assert.assertTrue( - partitionAssignmentMetadata2.get(0).equals( - "{instanceFilter=[" + liveInstances.get(0) + ", " + liveInstances.get(1) - + "], resourceFilter=[], returnFormat=IdealStateFormat}") || - partitionAssignmentMetadata2.get(0).equals( - "{instanceFilter=[" + liveInstances.get(1) + ", " + liveInstances.get(0) - + "], resourceFilter=[], returnFormat=IdealStateFormat}"), - partitionAssignmentMetadata2.get(0).toString()); + JSONAssert.assertEquals("{instanceFilter=[" + liveInstances.get(0) + ", " + liveInstances.get(1) + "], " + + "resourceFilter=[], " + "returnFormat=IdealStateFormat}", partitionAssignmentMetadata2.get(0).toString(), false); + JSONAssert.assertEquals("{instanceFilter=[" + liveInstances.get(0) + ", " + liveInstances.get(1) + "], " + + "resourceFilter=[], " + "returnFormat=IdealStateFormat}", ((String) partitionAssignmentMetadata2.get(0)), false); // Test partitionAssignment ResourceFilter String payload3 = @@ -177,14 +171,8 @@ public void testComputePartitionAssignment() throws IOException { headers3.get(ResourceAssignmentOptimizerAccessor.RESPONSE_HEADER_KEY); Assert.assertFalse( headers3.get(ResourceAssignmentOptimizerAccessor.RESPONSE_HEADER_KEY).isEmpty()); - Assert.assertTrue( - partitionAssignmentMetadata3.get(0).equals( - "{instanceFilter=[], resourceFilter=[" + resources.get(0) + ", " + resources.get(1) - + "], returnFormat=IdealStateFormat}") || - partitionAssignmentMetadata3.get(0).equals( - "{instanceFilter=[], resourceFilter=[" + resources.get(1) + ", " + resources.get(0) - + "], returnFormat=IdealStateFormat}"), - partitionAssignmentMetadata3.get(0).toString()); + JSONAssert.assertEquals("{instanceFilter=[], resourceFilter=[" + resources.get(0) + ", " + resources.get(1) + + "], returnFormat=IdealStateFormat}", partitionAssignmentMetadata3.get(0).toString(), false); // Test Option CurrentState format with AddInstances, RemoveInstances and SwapInstances String payload4 = "{\"InstanceChange\" : { \"ActivateInstances\" : [\"" + toEnabledInstance @@ -211,14 +199,9 @@ public void testComputePartitionAssignment() throws IOException { headers4.get(ResourceAssignmentOptimizerAccessor.RESPONSE_HEADER_KEY); Assert.assertFalse( headers4.get(ResourceAssignmentOptimizerAccessor.RESPONSE_HEADER_KEY).isEmpty()); - Assert.assertTrue( - partitionAssignmentMetadata4.get(0).equals( - "{instanceFilter=[], resourceFilter=[" + resources.get(0) + ", " + resources.get(1) - + "], returnFormat=CurrentStateFormat}") || - partitionAssignmentMetadata4.get(0).equals( - "{instanceFilter=[], resourceFilter=[" + resources.get(1) + ", " + resources.get(0) - + "], returnFormat=CurrentStateFormat}"), - partitionAssignmentMetadata4.get(0).toString()); + JSONAssert.assertEquals(partitionAssignmentMetadata4.get(0).toString(), + "{instanceFilter=[], resourceFilter=[" + resources.get(0) + ", " + resources.get(1)+ "], returnFormat" + + "=CurrentStateFormat}",false); System.out.println("End test :" + TestHelper.getTestMethodName()); }