summaryrefslogtreecommitdiff
path: root/qpid/java/systests/src
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2015-03-13 09:21:16 +0000
committerAlex Rudyy <orudyy@apache.org>2015-03-13 09:21:16 +0000
commit1e7ac2945fbbc185d03e3a1411065b077da80d67 (patch)
tree330227e9d4243307df07b1f19f80e23c3b895ce5 /qpid/java/systests/src
parent7b2de58298ec526db3025f6e40d032b35ba926c1 (diff)
downloadqpid-python-1e7ac2945fbbc185d03e3a1411065b077da80d67.tar.gz
QPID-6438: [Java Broker] Extend REST interfaces to result in errors when object already exist on create and when object does not exist on update
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1666380 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/systests/src')
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java4
-rw-r--r--qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/GroupRestTest.java31
-rw-r--r--qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/UserRestTest.java43
-rw-r--r--qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostNodeRestTest.java23
-rw-r--r--qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java103
5 files changed, 152 insertions, 52 deletions
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java
index e125ddb772..db89f39953 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java
@@ -307,7 +307,7 @@ public class RestTestHelper
{
HttpURLConnection connection = openManagementConnection(
"groupmember/" + encodeAsUTF(groupProviderName) + "/"+ encodeAsUTF(groupName) + "/" + encodeAsUTF(memberName),
- "POST");
+ "PUT");
Map<String, Object> groupMemberData = new HashMap<String, Object>();
// TODO add type
@@ -360,7 +360,7 @@ public class RestTestHelper
{
HttpURLConnection connection = openManagementConnection(
"group/" + encodeAsUTF(groupProviderName) + "/"+ encodeAsUTF(groupName),
- "POST");
+ "PUT");
Map<String, Object> groupData = new HashMap<String, Object>();
writeJsonRequest(connection, groupData);
diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/GroupRestTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/GroupRestTest.java
index 4fc5b1a184..d066d106ff 100644
--- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/GroupRestTest.java
+++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/GroupRestTest.java
@@ -74,7 +74,7 @@ public class GroupRestTest extends QpidRestTestCase
assertEquals(EXISTING_MEMBER, (String)member1.get(GroupMember.NAME));
}
- public void testCreateNewMemberByPut() throws Exception
+ public void testCreateNewMemberByPutUsingMemberURI() throws Exception
{
Map<String, Object> group = getRestTestHelper().getJsonAsSingletonList("group/" + FILE_GROUP_MANAGER + "/myGroup");
getRestTestHelper().assertNumberOfGroupMembers(group, 1);
@@ -86,19 +86,36 @@ public class GroupRestTest extends QpidRestTestCase
assertEquals("Unexpected group name", NEW_MEMBER, member.get(GroupMember.NAME));
}
- public void testCreateNewMemberByPost() throws Exception
+ public void testCreateNewMemberByPostUsingParentURI() throws Exception
{
Map<String, Object> group = getRestTestHelper().getJsonAsSingletonList("group/" + FILE_GROUP_MANAGER + "/myGroup");
getRestTestHelper().assertNumberOfGroupMembers(group, 1);
- String url = "groupmember/" + FILE_GROUP_MANAGER + "/"+ GROUP_NAME + "/" + NEW_MEMBER;
- getRestTestHelper().submitRequest(url, "POST", Collections.<String, Object>emptyMap(), HttpServletResponse.SC_CREATED);
+ String url = "groupmember/" + FILE_GROUP_MANAGER + "/"+ GROUP_NAME;
+ Map<String, Object> data = Collections.<String, Object>singletonMap("name", NEW_MEMBER);
+ getRestTestHelper().submitRequest(url, "POST", data, HttpServletResponse.SC_CREATED);
- Map<String, Object> member = getRestTestHelper().getJsonAsSingletonList(url);
+ Map<String, Object> member = getRestTestHelper().getJsonAsSingletonList(url + "/" + NEW_MEMBER);
+ assertEquals("Unexpected group name", NEW_MEMBER, member.get(GroupMember.NAME));
+
+ // verify that second creation request fails
+ getRestTestHelper().submitRequest(url, "POST", data, HttpServletResponse.SC_CONFLICT);
+ }
+
+ public void testCreateNewMemberByPutUsingParentURI() throws Exception
+ {
+ Map<String, Object> group = getRestTestHelper().getJsonAsSingletonList("group/" + FILE_GROUP_MANAGER + "/myGroup");
+ getRestTestHelper().assertNumberOfGroupMembers(group, 1);
+
+ String url = "groupmember/" + FILE_GROUP_MANAGER + "/"+ GROUP_NAME;
+ Map<String, Object> data = Collections.<String, Object>singletonMap("name", NEW_MEMBER);
+ getRestTestHelper().submitRequest(url, "PUT", data, HttpServletResponse.SC_CREATED);
+
+ Map<String, Object> member = getRestTestHelper().getJsonAsSingletonList(url + "/" + NEW_MEMBER);
assertEquals("Unexpected group name", NEW_MEMBER, member.get(GroupMember.NAME));
- // verify that second creation request by POST fails
- getRestTestHelper().submitRequest(url, "POST", Collections.<String, Object>emptyMap(), HttpServletResponse.SC_CONFLICT);
+ // verify that second creation request fails
+ getRestTestHelper().submitRequest(url, "PUT", data, HttpServletResponse.SC_CONFLICT);
}
public void testRemoveMemberFromGroup() throws Exception
diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/UserRestTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/UserRestTest.java
index 40eda50480..506f39a181 100644
--- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/UserRestTest.java
+++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/UserRestTest.java
@@ -67,7 +67,7 @@ public class UserRestTest extends QpidRestTestCase
}
}
- public void testCreateUserByPut() throws Exception
+ public void testCreateUserByPutUsingUserURI() throws Exception
{
String userName = getTestName();
getRestTestHelper().createOrUpdateUser(userName, "newPassword");
@@ -78,17 +78,18 @@ public class UserRestTest extends QpidRestTestCase
assertEquals("Unexpected user name", userName, userDetails.get(User.NAME));
}
- public void testCreateUserByPost() throws Exception
+ public void testCreateUserByPostUsingParentURI() throws Exception
{
String userName = getTestName();
Map<String,Object> userAttributes = new HashMap<>();
userAttributes.put("password", "newPassword");
+ userAttributes.put("name", userName);
- String url = "user/" + TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER + "/" + userName;
+ String url = "user/" + TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER;
getRestTestHelper().submitRequest(url, "POST", userAttributes, HttpServletResponse.SC_CREATED);
- Map<String, Object> userDetails = getRestTestHelper().getJsonAsSingletonList(url);
+ Map<String, Object> userDetails = getRestTestHelper().getJsonAsSingletonList(url+ "/" + userName);
assertUser(userDetails);
assertEquals("Unexpected user name", userName, userDetails.get(User.NAME));
@@ -96,6 +97,40 @@ public class UserRestTest extends QpidRestTestCase
getRestTestHelper().submitRequest(url, "POST", userAttributes, HttpServletResponse.SC_CONFLICT);
}
+ public void testCreateUserByPutUsingParentURI() throws Exception
+ {
+ String userName = getTestName();
+
+ Map<String,Object> userAttributes = new HashMap<>();
+ userAttributes.put("password", "newPassword");
+ userAttributes.put("name", userName);
+
+ String url = "user/" + TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER;
+ getRestTestHelper().submitRequest(url, "PUT", userAttributes, HttpServletResponse.SC_CREATED);
+
+ Map<String, Object> userDetails = getRestTestHelper().getJsonAsSingletonList(url+ "/" + userName);
+ assertUser(userDetails);
+ assertEquals("Unexpected user name", userName, userDetails.get(User.NAME));
+
+ // verify that second create request fails
+ getRestTestHelper().submitRequest(url, "PUT", userAttributes, HttpServletResponse.SC_CONFLICT);
+ }
+
+ public void testSetPasswordForNonExistingUserByPostFails() throws Exception
+ {
+ String userName = getTestName();
+
+ Map<String,Object> userAttributes = new HashMap<>();
+ userAttributes.put("password", "newPassword");
+ userAttributes.put("name", userName);
+
+ String url = "user/" + TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER + "/" + userName;
+ getRestTestHelper().submitRequest(url, "POST", userAttributes, HttpServletResponse.SC_NOT_FOUND);
+
+ List<Map<String, Object>> userDetails = getRestTestHelper().getJsonAsList(url);
+ assertTrue("User should not be created", userDetails.isEmpty());
+ }
+
public void testDelete() throws Exception
{
String userName = getTestName();
diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostNodeRestTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostNodeRestTest.java
index a75d04e2a5..69db2747c7 100644
--- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostNodeRestTest.java
+++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostNodeRestTest.java
@@ -126,23 +126,40 @@ public class VirtualHostNodeRestTest extends QpidRestTestCase
assertEquals(newDescription, virtualhostNode.get(VirtualHostNode.DESCRIPTION));
}
- public void testCreateVirtualHostNodeByPost() throws Exception
+ public void testCreateVirtualHostNodeByPostUsingParentURI() throws Exception
{
String nodeName = getTestName();
Map<String, Object> nodeData = new HashMap<>();
nodeData.put(VirtualHostNode.NAME, nodeName);
nodeData.put(VirtualHostNode.TYPE, getTestProfileVirtualHostNodeType());
- String url = "virtualhostnode/" + nodeName;
+ String url = "virtualhostnode";
getRestTestHelper().submitRequest(url, "POST", nodeData, HttpServletResponse.SC_CREATED);
- Map<String, Object> virtualhostNode = getRestTestHelper().getJsonAsSingletonList(url);
+ Map<String, Object> virtualhostNode = getRestTestHelper().getJsonAsSingletonList(url + "/" + nodeName);
Asserts.assertVirtualHostNode(nodeName, virtualhostNode);
// verify that second create request fails
getRestTestHelper().submitRequest(url, "POST", nodeData, HttpServletResponse.SC_CONFLICT);
}
+ public void testCreateVirtualHostNodeByPutUsingParentURI() throws Exception
+ {
+ String nodeName = getTestName();
+ Map<String, Object> nodeData = new HashMap<>();
+ nodeData.put(VirtualHostNode.NAME, nodeName);
+ nodeData.put(VirtualHostNode.TYPE, getTestProfileVirtualHostNodeType());
+
+ String url = "virtualhostnode";
+ getRestTestHelper().submitRequest(url, "PUT", nodeData, HttpServletResponse.SC_CREATED);
+
+ Map<String, Object> virtualhostNode = getRestTestHelper().getJsonAsSingletonList(url + "/" + nodeName);
+ Asserts.assertVirtualHostNode(nodeName, virtualhostNode);
+
+ // verify that second create request fails
+ getRestTestHelper().submitRequest(url, "PUT", nodeData, HttpServletResponse.SC_CONFLICT);
+ }
+
private void createAndDeleteVirtualHostNode(final String virtualhostNodeType,
final String nodeName,
final File storePathAsFile) throws Exception
diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java
index 7655601519..15be0c8196 100644
--- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java
+++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java
@@ -31,7 +31,6 @@ import javax.jms.Destination;
import javax.jms.Session;
import javax.servlet.http.HttpServletResponse;
-import org.apache.qpid.server.virtualhost.ProvidedStoreVirtualHostImpl;
import org.apache.qpid.client.AMQConnection;
import org.apache.qpid.server.model.Exchange;
import org.apache.qpid.server.model.Queue;
@@ -118,8 +117,8 @@ public class VirtualHostRestTest extends QpidRestTestCase
public void testCreateProvidedVirtualHost() throws Exception
{
- String hostName = getTestName();
- createVirtualHost(hostName, ProvidedStoreVirtualHostImpl.VIRTUAL_HOST_TYPE, "PUT");
+ Map<String, Object> requestData = submitVirtualHost(true, "PUT", HttpServletResponse.SC_CREATED);
+ String hostName = (String)requestData.get(VirtualHost.NAME);
Map<String, Object> hostDetails = getRestTestHelper().getJsonAsSingletonList("virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName);
Asserts.assertVirtualHost(hostName, hostDetails);
@@ -127,42 +126,53 @@ public class VirtualHostRestTest extends QpidRestTestCase
assertNewVirtualHost(hostDetails);
}
- public void testCreateVirtualHostByPut() throws Exception
+ public void testCreateVirtualHostByPutUsingParentURI() throws Exception
{
- String hostName = getTestName();
- String vhnType = getTestProfileVirtualHostNodeType();
- if (JsonVirtualHostNodeImpl.VIRTUAL_HOST_NODE_TYPE.equals(vhnType))
- {
- vhnType = DerbyVirtualHostImpl.VIRTUAL_HOST_TYPE;
- }
- createVirtualHost(hostName, vhnType, "PUT");
- Map<String, Object> hostDetails = getRestTestHelper().getJsonAsSingletonList("virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName);
- Asserts.assertVirtualHost(hostName, hostDetails);
+ Map<String, Object> data = submitVirtualHost(true, "PUT", HttpServletResponse.SC_CREATED);
+ String hostName = (String)data.get(VirtualHost.NAME);
+ String url = "virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName;
+ Map<String, Object> hostDetails = getRestTestHelper().getJsonAsSingletonList(url);
+ Asserts.assertVirtualHost(hostName, hostDetails);
assertNewVirtualHost(hostDetails);
+
+ // verify second create request fails
+ submitVirtualHost(true, "PUT", HttpServletResponse.SC_CONFLICT);
}
- public void testCreateVirtualHostByPost() throws Exception
+ public void testCreateVirtualHostByPostUsingParentURI() throws Exception
{
- String hostName = getTestName();
- String type = getTestProfileVirtualHostNodeType();
- if (JsonVirtualHostNodeImpl.VIRTUAL_HOST_NODE_TYPE.equals(type))
- {
- type = DerbyVirtualHostImpl.VIRTUAL_HOST_TYPE;
- }
- Map<String, Object> data = new HashMap<>();
- data.put(VirtualHost.NAME, hostName);
- data.put(VirtualHost.TYPE, type);
-
- String url = "virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName;
- getRestTestHelper().submitRequest(url, "POST", data, HttpServletResponse.SC_CREATED);
+ Map<String, Object> data = submitVirtualHost(true, "POST", HttpServletResponse.SC_CREATED);
+ String hostName = (String)data.get(VirtualHost.NAME);
- Map<String, Object> hostDetails = getRestTestHelper().getJsonAsSingletonList(url);
+ Map<String, Object> hostDetails = getRestTestHelper().getJsonAsSingletonList("virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName);
Asserts.assertVirtualHost(hostName, hostDetails);
assertNewVirtualHost(hostDetails);
// verify second create request fails
- getRestTestHelper().submitRequest(url, "POST", data, HttpServletResponse.SC_CONFLICT);
+ submitVirtualHost(true, "POST", HttpServletResponse.SC_CONFLICT);
+ }
+
+ public void testCreateVirtualHostByPutUsingVirtualHostURI() throws Exception
+ {
+ Map<String, Object> data = submitVirtualHost(false, "PUT", HttpServletResponse.SC_CREATED);
+ String hostName = (String)data.get(VirtualHost.NAME);
+ Map<String, Object> hostDetails = getRestTestHelper().getJsonAsSingletonList("virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName);
+ Asserts.assertVirtualHost(hostName, hostDetails);
+
+ assertNewVirtualHost(hostDetails);
+
+ // verify VH is updated successfully
+ submitVirtualHost(false, "PUT", HttpServletResponse.SC_OK);
+ }
+
+ public void testCreateVirtualHostByPostUsingVirtualHostURI() throws Exception
+ {
+ Map<String, Object> data = submitVirtualHost(false, "POST", HttpServletResponse.SC_NOT_FOUND);
+
+ String hostName = (String)data.get(VirtualHost.NAME);
+ List<Map<String, Object>> hostDetails = getRestTestHelper().getJsonAsList("virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName);
+ assertTrue("VH should not exist", hostDetails.isEmpty());
}
public void testDeleteHost() throws Exception
@@ -180,7 +190,17 @@ public class VirtualHostRestTest extends QpidRestTestCase
getRestTestHelper().submitRequest("virtualhost/" + TEST1_VIRTUALHOST, "DELETE", HttpServletResponse.SC_CONFLICT);
}
- public void testMutateAttributes() throws Exception
+ public void testUpdateByPut() throws Exception
+ {
+ assertVirtualHostUpdate("PUT");
+ }
+
+ public void testUpdateByPost() throws Exception
+ {
+ assertVirtualHostUpdate("PUT");
+ }
+
+ private void assertVirtualHostUpdate(String method) throws IOException
{
String hostToUpdate = TEST3_VIRTUALHOST;
String restHostUrl = "virtualhost/" + hostToUpdate + "/" + hostToUpdate;
@@ -189,7 +209,7 @@ public class VirtualHostRestTest extends QpidRestTestCase
Asserts.assertVirtualHost(hostToUpdate, hostDetails);
Map<String, Object> newAttributes = Collections.<String, Object>singletonMap(VirtualHost.DESCRIPTION, "This is a virtual host");
- getRestTestHelper().submitRequest(restHostUrl, "PUT", newAttributes, HttpServletResponse.SC_OK);
+ getRestTestHelper().submitRequest(restHostUrl, method, newAttributes, HttpServletResponse.SC_OK);
Map<String, Object> rereadHostDetails = getRestTestHelper().getJsonAsSingletonList(restHostUrl);
Asserts.assertVirtualHost(hostToUpdate, rereadHostDetails);
@@ -598,17 +618,28 @@ public class VirtualHostRestTest extends QpidRestTestCase
return getRestTestHelper().submitRequest("queue/test/test/" + queueName, "PUT", queueData);
}
- private void createVirtualHost(final String virtualHostName,
- final String virtualHostType, String method) throws IOException
+ private Map<String, Object> submitVirtualHost(boolean useParentURI, String method, int statusCode) throws IOException
{
+ String hostName = getTestName();
+ String type = getTestProfileVirtualHostNodeType();
+ if (JsonVirtualHostNodeImpl.VIRTUAL_HOST_NODE_TYPE.equals(type))
+ {
+ type = DerbyVirtualHostImpl.VIRTUAL_HOST_TYPE;
+ }
Map<String, Object> virtualhostData = new HashMap<>();
- virtualhostData.put(VirtualHost.NAME, virtualHostName);
- virtualhostData.put(VirtualHost.TYPE, virtualHostType);
+ virtualhostData.put(VirtualHost.NAME, hostName);
+ virtualhostData.put(VirtualHost.TYPE, type);
- getRestTestHelper().submitRequest("virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + virtualHostName,
+ String url = "virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME;
+ if (!useParentURI)
+ {
+ url += "/" + hostName;
+ }
+ getRestTestHelper().submitRequest(url,
method,
virtualhostData,
- HttpServletResponse.SC_CREATED);
+ statusCode);
+ return virtualhostData;
}
private void assertNewVirtualHost(Map<String, Object> hostDetails)