in src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletMoveTest.java [399:475]
public void testMoveNodeMultipleSourceReplace() throws Exception {
final String testPath = TEST_BASE_PATH + "/mvmult/"
+ System.currentTimeMillis();
final String testRoot = testClient.createNode(HTTP_BASE_URL + testPath,
null);
// create multiple source nodes
Map<String, String> props = new HashMap<String, String>();
props.put("text", "Hello");
testClient.createNode(HTTP_BASE_URL + testPath + "/src1", props);
testClient.createNode(HTTP_BASE_URL + testPath + "/src2", props);
// move the src? nodes
List<NameValuePair> nvPairs = new ArrayList<NameValuePair>();
nvPairs.add(new NameValuePair(SlingPostConstants.RP_OPERATION,
SlingPostConstants.OPERATION_MOVE));
nvPairs.add(new NameValuePair(SlingPostConstants.RP_DEST, testPath
+ "/dest/"));
nvPairs.add(new NameValuePair(SlingPostConstants.RP_APPLY_TO, testPath
+ "/src1"));
nvPairs.add(new NameValuePair(SlingPostConstants.RP_APPLY_TO, testPath
+ "/src2"));
assertPostStatus(testRoot, HttpServletResponse.SC_PRECONDITION_FAILED,
nvPairs, "Expecting Move Failure: dest parent does not exist");
// create destination parent
testClient.createNode(HTTP_BASE_URL + testPath + "/dest", null);
// now dest exists, so we expect success
assertPostStatus(testRoot, HttpServletResponse.SC_OK, nvPairs,
"Expecting Move Success");
// assert partial existence of the src?/text properties
assertHttpStatus(HTTP_BASE_URL + testPath + "/dest/src1/text",
HttpServletResponse.SC_OK);
assertHttpStatus(HTTP_BASE_URL + testPath + "/dest/src2/text",
HttpServletResponse.SC_OK);
assertHttpStatus(HTTP_BASE_URL + testPath + "/dest/src3/text",
HttpServletResponse.SC_NOT_FOUND);
assertHttpStatus(HTTP_BASE_URL + testPath + "/dest/src4/text",
HttpServletResponse.SC_NOT_FOUND);
// assert content test
String content = getContent(HTTP_BASE_URL + testPath
+ "/dest/src1.json", CONTENT_TYPE_JSON);
JsonObject json = JsonUtil.parseObject(content);
assertEquals("Hello", json.getString("text"));
// modify src1 content
nvPairs.clear();
nvPairs.add(new NameValuePair("text", "Modified Hello"));
assertPostStatus(HTTP_BASE_URL + testPath + "/src1",
HttpServletResponse.SC_CREATED, nvPairs,
"Expect Content Create Success");
// move the src? nodes
nvPairs.clear();
nvPairs.add(new NameValuePair(SlingPostConstants.RP_OPERATION,
SlingPostConstants.OPERATION_MOVE));
nvPairs.add(new NameValuePair(SlingPostConstants.RP_DEST, testPath
+ "/dest/"));
nvPairs.add(new NameValuePair(SlingPostConstants.RP_APPLY_TO, testPath
+ "/src1"));
nvPairs.add(new NameValuePair(SlingPostConstants.RP_APPLY_TO, testPath
+ "/src2"));
assertPostStatus(testRoot, HttpServletResponse.SC_OK, nvPairs,
"Expecting Move Success");
// assert content test
String content2 = getContent(HTTP_BASE_URL + testPath
+ "/dest/src1.json", CONTENT_TYPE_JSON);
JsonObject json2 = JsonUtil.parseObject(content2);
assertEquals("Modified Hello", json2.getString("text"));
// clean up
testClient.delete(testRoot);
}