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
This commit is contained in:
Alan Davis
2015-01-31 12:05:28 +00:00
parent b0bc4b7189
commit cfb92ca02b
4 changed files with 47 additions and 18 deletions

View File

@@ -19,6 +19,8 @@
package org.alfresco.repo.web.scripts.rating; package org.alfresco.repo.web.scripts.rating;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.model.Repository; import org.alfresco.repo.model.Repository;
@@ -146,14 +148,21 @@ public class RatingRestApiTest extends BaseWebScriptTest
assertNotNull("JSON 'ratingSchemesArray' object was null", ratingSchemesArray); assertNotNull("JSON 'ratingSchemesArray' object was null", ratingSchemesArray);
assertEquals(2, ratingSchemesArray.length()); assertEquals(2, ratingSchemesArray.length());
JSONObject scheme1 = ratingSchemesArray.getJSONObject(0); // The array's objects may be in different order
JSONObject scheme2 = ratingSchemesArray.getJSONObject(1); Map<String, JSONObject> ratingsMap = new HashMap<String, JSONObject>();
for (int i = 0 ; i < ratingSchemesArray.length(); i++)
{
ratingsMap.put(ratingSchemesArray.getJSONObject(i).getString(NAME), ratingSchemesArray.getJSONObject(i));
}
assertEquals(LIKES_RATING_SCHEME, scheme1.getString(NAME)); 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(MIN_RATING));
assertEquals(1.0, scheme1.getDouble(MAX_RATING)); assertEquals(1.0, scheme1.getDouble(MAX_RATING));
assertTrue(scheme1.getBoolean("selfRatingAllowed")); 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(1.0, scheme2.getDouble(MIN_RATING));
assertEquals(5.0, scheme2.getDouble(MAX_RATING)); assertEquals(5.0, scheme2.getDouble(MAX_RATING));
assertFalse(scheme2.getBoolean("selfRatingAllowed")); assertFalse(scheme2.getBoolean("selfRatingAllowed"));

View File

@@ -461,7 +461,7 @@ public class ReplicationRestApiTest extends BaseWebScriptTest
key.equals("executionDetails") || key.equals("payload") || key.equals("executionDetails") || key.equals("payload") ||
key.equals("transferLocalReport") || key.equals("transferLocalReport") ||
key.equals("transferRemoteReport") || key.equals("transferRemoteReport") ||
key.equals("enabled") || key.equals("schedule")) { key.equals("enabled") || key.equals("targetName") || key.equals("schedule")) {
// All good // All good
} else { } else {
fail("Unexpected key '"+key+"' found in json, raw json is\n" + jsonStr); 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("executionDetails") || key.equals("payload") ||
key.equals("transferLocalReport") || key.equals("transferLocalReport") ||
key.equals("transferRemoteReport") || key.equals("transferRemoteReport") ||
key.equals("enabled") || key.equals("schedule")) { key.equals("enabled") || key.equals("targetName") || key.equals("schedule")) {
// All good // All good
} else { } else {
fail("Unexpected key '"+key+"' found in json, raw json is\n" + jsonStr); fail("Unexpected key '"+key+"' found in json, raw json is\n" + jsonStr);

View File

@@ -415,16 +415,22 @@ public class SiteServiceTest extends BaseWebScriptTest
// Check the everyone has the correct membership // Check the everyone has the correct membership
// (The webscript returns the users in order to make testing easier) // (The webscript returns the users in order to make testing easier)
membership = result3.getJSONObject(0); Map<String, JSONObject> membershipMap = new HashMap<String, JSONObject>();
assertEquals(SiteModel.SITE_MANAGER, membership.get("role")); 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")); assertEquals(USER_ONE, membership.getJSONObject("authority").get("userName"));
membership = result3.getJSONObject(1); membership = membershipMap.get(SiteModel.SITE_CONSUMER);
assertEquals(SiteModel.SITE_CONSUMER, membership.get("role")); assertNotNull("The response did not contain " + SiteModel.SITE_CONSUMER, membership);
assertEquals(USER_TWO, membership.getJSONObject("authority").get("userName")); assertEquals(USER_TWO, membership.getJSONObject("authority").get("userName"));
membership = result3.getJSONObject(2); membership = membershipMap.get(SiteModel.SITE_CONTRIBUTOR);
assertEquals(SiteModel.SITE_CONTRIBUTOR, membership.get("role")); assertNotNull("The response did not contain " + SiteModel.SITE_CONTRIBUTOR, membership);
assertEquals(USER_NUMERIC, membership.getJSONObject("authority").get("userName")); assertEquals(USER_NUMERIC, membership.getJSONObject("authority").get("userName"));
} }

View File

@@ -1,5 +1,6 @@
package org.alfresco.rest.framework.tests.core; package org.alfresco.rest.framework.tests.core;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue; 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.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.schema.JsonSchema; 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.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@@ -397,7 +401,7 @@ public class SerializeTests
} }
@Test @Test
public void testFilter() throws IOException public void testFilter() throws IOException, JSONException
{ {
assertNotNull(helper); assertNotNull(helper);
BeanPropertiesFilter theFilter = ResourceWebScriptHelper.getFilter("age"); BeanPropertiesFilter theFilter = ResourceWebScriptHelper.getFilter("age");
@@ -408,13 +412,23 @@ public class SerializeTests
theFilter = ResourceWebScriptHelper.getFilter("age,name"); theFilter = ResourceWebScriptHelper.getFilter("age,name");
res = new ExecutionResult(new Sheep("bob"),theFilter); res = new ExecutionResult(new Sheep("bob"),theFilter);
out = writeResponse(res); 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"); Api v3 = Api.valueOf(api.getName(), api.getScope().toString(), "3");
Map<String, BeanPropertiesFilter> relFiler = ResourceWebScriptHelper.getRelationFilter("herd"); Map<String, BeanPropertiesFilter> relFiler = ResourceWebScriptHelper.getRelationFilter("herd");
res = helper.postProcessResponse(v3,"goat",ParamsExtender.valueOf(relFiler, "notUsed"),new SlimGoat()); res = helper.postProcessResponse(v3,"goat",ParamsExtender.valueOf(relFiler, "notUsed"),new SlimGoat());
out = writeResponse(res); 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)"); relFiler = ResourceWebScriptHelper.getRelationFilter("herd(name)");
res = helper.postProcessResponse(v3,"goat",ParamsExtender.valueOf(relFiler, "notUsed"),new SlimGoat()); res = helper.postProcessResponse(v3,"goat",ParamsExtender.valueOf(relFiler, "notUsed"),new SlimGoat());