ISIS-421: Post on object resource is 405

Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/99a87cc0
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/99a87cc0
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/99a87cc0

Branch: refs/heads/master
Commit: 99a87cc01a07a95a280798cc7a418fcff6363c78
Parents: 86dd97c
Author: Dan Haywood <[email protected]>
Authored: Fri Mar 28 10:32:15 2014 +0000
Committer: Dan Haywood <[email protected]>
Committed: Fri Mar 28 10:32:15 2014 +0000

----------------------------------------------------------------------
 .../domainobjects/DomainObjectResource.java     |  4 ++
 .../DomainObjectResourceServerside.java         |  5 ++
 .../oid/Post_thenResponseCode_405_bad.java      | 65 ++++++++++++++++++++
 .../oid/Post_thenResponseCode_405_bad_TODO.java | 23 -------
 4 files changed, 74 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/99a87cc0/component/viewer/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domainobjects/DomainObjectResource.java
----------------------------------------------------------------------
diff --git 
a/component/viewer/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domainobjects/DomainObjectResource.java
 
b/component/viewer/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domainobjects/DomainObjectResource.java
index 9800fb7..f376e98 100644
--- 
a/component/viewer/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domainobjects/DomainObjectResource.java
+++ 
b/component/viewer/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/domainobjects/DomainObjectResource.java
@@ -66,6 +66,10 @@ public interface DomainObjectResource {
     @Path("/{domainType}/{instanceId}")
     public Response deleteMethodNotSupported(@PathParam("domainType") String 
domainType, @PathParam("instanceId") final String instanceId);
 
+    @POST
+    @Path("/{domainType}/{instanceId}")
+    public Response postMethodNotAllowed(@PathParam("domainType") String 
domainType, @PathParam("instanceId") final String instanceId);
+
 
     // //////////////////////////////////////////////////////////
     // domain object property

http://git-wip-us.apache.org/repos/asf/isis/blob/99a87cc0/component/viewer/restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
----------------------------------------------------------------------
diff --git 
a/component/viewer/restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
 
b/component/viewer/restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
index f99299e..8841c69 100644
--- 
a/component/viewer/restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
+++ 
b/component/viewer/restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
@@ -147,6 +147,11 @@ public class DomainObjectResourceServerside extends 
ResourceAbstract implements
         throw 
RestfulObjectsApplicationException.createWithMessage(HttpStatusCode.METHOD_NOT_ALLOWED,
 "Deleting objects is not supported.");
     }
 
+    @Override
+    public Response postMethodNotAllowed(@PathParam("domainType") String 
domainType, @PathParam("instanceId") String instanceId) {
+        throw 
RestfulObjectsApplicationException.createWithMessage(HttpStatusCode.METHOD_NOT_ALLOWED,
 "Posting to object resource is not allowed.");
+    }
+
     // //////////////////////////////////////////////////////////
     // domain object property
     // //////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/99a87cc0/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Post_thenResponseCode_405_bad.java
----------------------------------------------------------------------
diff --git 
a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Post_thenResponseCode_405_bad.java
 
b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Post_thenResponseCode_405_bad.java
new file mode 100644
index 0000000..1c7bb40
--- /dev/null
+++ 
b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Post_thenResponseCode_405_bad.java
@@ -0,0 +1,65 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.viewer.restfulobjects.tck.domainobject.oid;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.apache.isis.core.webserver.WebServer;
+import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
+import org.apache.isis.viewer.restfulobjects.applib.LinkRepresentation;
+import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
+import org.apache.isis.viewer.restfulobjects.applib.errors.ErrorRepresentation;
+import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
+import org.apache.isis.viewer.restfulobjects.tck.Util;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+public class Post_thenResponseCode_405_bad {
+
+    @Rule
+    public IsisWebServerRule webServerRule = new IsisWebServerRule();
+
+    protected RestfulClient client;
+
+    private ErrorRepresentation errorRepresentation;
+
+    @Before
+    public void setUp() throws Exception {
+        final WebServer webServer = webServerRule.getWebServer();
+        client = new RestfulClient(webServer.getBase());
+    }
+
+    @Test
+    public void followLink() throws Exception {
+
+        // when
+        final LinkRepresentation link = Util.domainObjectLink(client, 
"PrimitiveValuedEntities");
+        final LinkRepresentation deleteLink = 
link.withMethod(RestfulHttpMethod.POST);
+        final RestfulResponse<JsonRepresentation> restfulResponse = 
client.follow(deleteLink);
+
+        assertThat(restfulResponse.getStatus(), 
is(RestfulResponse.HttpStatusCode.METHOD_NOT_ALLOWED));
+        assertThat(restfulResponse.getHeader(RestfulResponse.Header.WARNING), 
is("Posting to object resource is not allowed."));
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/99a87cc0/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Post_thenResponseCode_405_bad_TODO.java
----------------------------------------------------------------------
diff --git 
a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Post_thenResponseCode_405_bad_TODO.java
 
b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Post_thenResponseCode_405_bad_TODO.java
deleted file mode 100644
index 2ef16ac..0000000
--- 
a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobject/oid/Post_thenResponseCode_405_bad_TODO.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.viewer.restfulobjects.tck.domainobject.oid;
-
-public class Post_thenResponseCode_405_bad_TODO {
-
-}

Reply via email to