From cfb92ca02bb8cb0a9f6062b04a0e7668bb39226e Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Sat, 31 Jan 2015 12:05:28 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (5.1/Cloud) to HEAD (5.1/Cloud) 92755: Merged 5.0.N (5.0.1) to HEAD-BUG-FIX (5.1/Cloud) 92746: Merged DEV (5.0.1) to 5.0.N (5.0.1) 92700: MNT-13026: JDK8: 5 test failures in remote-api Fixed tests to check JSON correctly as in JDK8 the objects have different order. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@94912 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../web/scripts/rating/RatingRestApiTest.java | 21 +++++++++++++----- .../replication/ReplicationRestApiTest.java | 4 ++-- .../web/scripts/site/SiteServiceTest.java | 18 ++++++++++----- .../framework/tests/core/SerializeTests.java | 22 +++++++++++++++---- 4 files changed, 47 insertions(+), 18 deletions(-) diff --git a/source/test-java/org/alfresco/repo/web/scripts/rating/RatingRestApiTest.java b/source/test-java/org/alfresco/repo/web/scripts/rating/RatingRestApiTest.java index c5724f2c94..2c7e99afd5 100644 --- a/source/test-java/org/alfresco/repo/web/scripts/rating/RatingRestApiTest.java +++ b/source/test-java/org/alfresco/repo/web/scripts/rating/RatingRestApiTest.java @@ -19,6 +19,8 @@ package org.alfresco.repo.web.scripts.rating; import java.text.MessageFormat; +import java.util.HashMap; +import java.util.Map; import org.alfresco.model.ContentModel; import org.alfresco.repo.model.Repository; @@ -145,15 +147,22 @@ public class RatingRestApiTest extends BaseWebScriptTest JSONArray ratingSchemesArray = (JSONArray)dataObj.get(RATING_SCHEMES); assertNotNull("JSON 'ratingSchemesArray' object was null", ratingSchemesArray); assertEquals(2, ratingSchemesArray.length()); - - JSONObject scheme1 = ratingSchemesArray.getJSONObject(0); - JSONObject scheme2 = ratingSchemesArray.getJSONObject(1); - - assertEquals(LIKES_RATING_SCHEME, scheme1.getString(NAME)); + + // The array's objects may be in different order + Map ratingsMap = new HashMap(); + for (int i = 0 ; i < ratingSchemesArray.length(); i++) + { + ratingsMap.put(ratingSchemesArray.getJSONObject(i).getString(NAME), ratingSchemesArray.getJSONObject(i)); + } + + JSONObject scheme1 = ratingsMap.get(LIKES_RATING_SCHEME); + JSONObject scheme2 = ratingsMap.get(FIVE_STAR_RATING_SCHEME); + + assertNotNull("The response did not contain " + LIKES_RATING_SCHEME, scheme1); assertEquals(1.0, scheme1.getDouble(MIN_RATING)); assertEquals(1.0, scheme1.getDouble(MAX_RATING)); assertTrue(scheme1.getBoolean("selfRatingAllowed")); - assertEquals(FIVE_STAR_RATING_SCHEME, scheme2.getString(NAME)); + assertNotNull("The response did not contain " + FIVE_STAR_RATING_SCHEME, scheme2); assertEquals(1.0, scheme2.getDouble(MIN_RATING)); assertEquals(5.0, scheme2.getDouble(MAX_RATING)); assertFalse(scheme2.getBoolean("selfRatingAllowed")); diff --git a/source/test-java/org/alfresco/repo/web/scripts/replication/ReplicationRestApiTest.java b/source/test-java/org/alfresco/repo/web/scripts/replication/ReplicationRestApiTest.java index 33de1b72ab..a9a944a651 100644 --- a/source/test-java/org/alfresco/repo/web/scripts/replication/ReplicationRestApiTest.java +++ b/source/test-java/org/alfresco/repo/web/scripts/replication/ReplicationRestApiTest.java @@ -461,7 +461,7 @@ public class ReplicationRestApiTest extends BaseWebScriptTest key.equals("executionDetails") || key.equals("payload") || key.equals("transferLocalReport") || key.equals("transferRemoteReport") || - key.equals("enabled") || key.equals("schedule")) { + key.equals("enabled") || key.equals("targetName") || key.equals("schedule")) { // All good } else { fail("Unexpected key '"+key+"' found in json, raw json is\n" + jsonStr); @@ -1071,7 +1071,7 @@ public class ReplicationRestApiTest extends BaseWebScriptTest key.equals("executionDetails") || key.equals("payload") || key.equals("transferLocalReport") || key.equals("transferRemoteReport") || - key.equals("enabled") || key.equals("schedule")) { + key.equals("enabled") || key.equals("targetName") || key.equals("schedule")) { // All good } else { fail("Unexpected key '"+key+"' found in json, raw json is\n" + jsonStr); diff --git a/source/test-java/org/alfresco/repo/web/scripts/site/SiteServiceTest.java b/source/test-java/org/alfresco/repo/web/scripts/site/SiteServiceTest.java index 3e06d7fe10..5677f96e49 100644 --- a/source/test-java/org/alfresco/repo/web/scripts/site/SiteServiceTest.java +++ b/source/test-java/org/alfresco/repo/web/scripts/site/SiteServiceTest.java @@ -415,16 +415,22 @@ public class SiteServiceTest extends BaseWebScriptTest // Check the everyone has the correct membership // (The webscript returns the users in order to make testing easier) - membership = result3.getJSONObject(0); - assertEquals(SiteModel.SITE_MANAGER, membership.get("role")); + Map membershipMap = new HashMap(); + for (int i = 0 ; i < membership.length(); i++) + { + membershipMap.put(result3.getJSONObject(i).getString("role"), result3.getJSONObject(i)); + } + + membership = membershipMap.get(SiteModel.SITE_MANAGER); + assertNotNull("The response did not contain " + SiteModel.SITE_MANAGER, membership); assertEquals(USER_ONE, membership.getJSONObject("authority").get("userName")); - membership = result3.getJSONObject(1); - assertEquals(SiteModel.SITE_CONSUMER, membership.get("role")); + membership = membershipMap.get(SiteModel.SITE_CONSUMER); + assertNotNull("The response did not contain " + SiteModel.SITE_CONSUMER, membership); assertEquals(USER_TWO, membership.getJSONObject("authority").get("userName")); - membership = result3.getJSONObject(2); - assertEquals(SiteModel.SITE_CONTRIBUTOR, membership.get("role")); + membership = membershipMap.get(SiteModel.SITE_CONTRIBUTOR); + assertNotNull("The response did not contain " + SiteModel.SITE_CONTRIBUTOR, membership); assertEquals(USER_NUMERIC, membership.getJSONObject("authority").get("userName")); } diff --git a/source/test-java/org/alfresco/rest/framework/tests/core/SerializeTests.java b/source/test-java/org/alfresco/rest/framework/tests/core/SerializeTests.java index 8b1b2c4474..aca02d302e 100644 --- a/source/test-java/org/alfresco/rest/framework/tests/core/SerializeTests.java +++ b/source/test-java/org/alfresco/rest/framework/tests/core/SerializeTests.java @@ -1,5 +1,6 @@ package org.alfresco.rest.framework.tests.core; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; @@ -57,6 +58,9 @@ import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.schema.JsonSchema; +import org.json.JSONException; +import org.json.JSONObject; +import org.json.JSONTokener; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -397,7 +401,7 @@ public class SerializeTests } @Test - public void testFilter() throws IOException + public void testFilter() throws IOException, JSONException { assertNotNull(helper); BeanPropertiesFilter theFilter = ResourceWebScriptHelper.getFilter("age"); @@ -408,14 +412,24 @@ public class SerializeTests theFilter = ResourceWebScriptHelper.getFilter("age,name"); res = new ExecutionResult(new Sheep("bob"),theFilter); out = writeResponse(res); - assertTrue("Filter must return the age and name.", StringUtils.contains(out, "{\"age\":3,\"name\":\"Dolly\"}")); + JSONObject jsonRsp = new JSONObject(new JSONTokener(out)); + JSONObject entry = jsonRsp.getJSONObject("entry"); + assertEquals("The name should be 'Dolly'", "Dolly", entry.getString("name")); + assertTrue("The age should be 3", entry.getInt("age") == 3); Api v3 = Api.valueOf(api.getName(), api.getScope().toString(), "3"); Map relFiler = ResourceWebScriptHelper.getRelationFilter("herd"); res = helper.postProcessResponse(v3,"goat",ParamsExtender.valueOf(relFiler, "notUsed"),new SlimGoat()); out = writeResponse(res); - assertTrue("Must return a full herd.", StringUtils.contains(out, "{\"name\":\"bigun\",\"quantity\":56}")); - + jsonRsp = new JSONObject(new JSONTokener(out)); + entry = jsonRsp.getJSONObject("relations") + .getJSONObject("herd") + .getJSONObject("list") + .getJSONArray("entries").getJSONObject(0) + .getJSONObject("entry"); + assertEquals("The name should be 'bigun'", "bigun", entry.getString("name")); + assertTrue("The quantity should be 56", entry.getInt("quantity") == 56); + relFiler = ResourceWebScriptHelper.getRelationFilter("herd(name)"); res = helper.postProcessResponse(v3,"goat",ParamsExtender.valueOf(relFiler, "notUsed"),new SlimGoat()); out = writeResponse(res);