Clover icon

Magnolia REST Integration Tests 2.1.5

  1. Project Clover database Tue Jan 28 2020 16:43:22 CET
  2. Package info.magnolia.integrationtests.rest.delivery.jcr.v2

File ExceptionHandlingTest.java

 

Code metrics

0
9
9
1
172
120
9
1
1
9
1

Classes

Class Line # Actions
ExceptionHandlingTest 48 9 0% 9 18
0.00%
 

Contributing tests

No tests hitting this source file were found.

Source view

1    /**
2    * This file Copyright (c) 2018 Magnolia International
3    * Ltd. (http://www.magnolia-cms.com). All rights reserved.
4    *
5    *
6    * This file is dual-licensed under both the Magnolia
7    * Network Agreement and the GNU General Public License.
8    * You may elect to use one or the other of these licenses.
9    *
10    * This file is distributed in the hope that it will be
11    * useful, but AS-IS and WITHOUT ANY WARRANTY; without even the
12    * implied warranty of MERCHANTABILITY or FITNESS FOR A
13    * PARTICULAR PURPOSE, TITLE, or NONINFRINGEMENT.
14    * Redistribution, except as permitted by whichever of the GPL
15    * or MNA you select, is prohibited.
16    *
17    * 1. For the GPL license (GPL), you can redistribute and/or
18    * modify this file under the terms of the GNU General
19    * Public License, Version 3, as published by the Free Software
20    * Foundation. You should have received a copy of the GNU
21    * General Public License, Version 3 along with this program;
22    * if not, write to the Free Software Foundation, Inc., 51
23    * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
24    *
25    * 2. For the Magnolia Network Agreement (MNA), this file
26    * and the accompanying materials are made available under the
27    * terms of the MNA which accompanies this distribution, and
28    * is available at http://www.magnolia-cms.com/mna.html
29    *
30    * Any modifications to this file must keep this entire header
31    * intact.
32    *
33    */
34    package info.magnolia.integrationtests.rest.delivery.jcr.v2;
35   
36    import static io.restassured.RestAssured.given;
37    import static org.hamcrest.Matchers.*;
38   
39    import org.junit.Test;
40   
41    import io.restassured.http.ContentType;
42   
43    /**
44    * In order to show JSON output, simply append "log().body()" after "then()"<br/>
45    * For example: get("/x").then().log().body()...
46    * @see <a href="https://github.com/rest-assured/rest-assured/wiki/Usage#user-content-response-logging">Response Logging</a>
47    */
 
48    public class ExceptionHandlingTest extends AbstractJcrDeliveryEndpointTest {
49   
 
50  0 toggle @Test
51    public void invalidRequestParamReturns404() {
52  0 given().param("limit", "notANumber")
53    .when()
54    .get("default/v1")
55    .then()
56    .statusCode(404)
57    .body(
58    "", hasKey("error"),
59    "error.code", equalTo("notFound"),
60    "error.message", containsString("Unable to extract parameter from http request")
61    );
62    }
63   
 
64  0 toggle @Test
65    public void noMatchForAcceptHeaderReturns406() {
66  0 given().accept(ContentType.XML)
67    .when()
68    .get("default/v1")
69    .then()
70    .statusCode(406)
71    .body(
72    "", hasKey("error"),
73    "error.code", equalTo("notAcceptable"),
74    "error.message", containsString("No match for accept header")
75    );
76    }
77   
 
78  0 toggle @Test
79    public void methodNotAllowedReturns405() {
80  0 given().auth()
81    .preemptive()
82    .basic("superuser", "superuser")
83    .when()
84    .post("withoutBypassAcls/v1")
85    .then()
86    .statusCode(405)
87    .body(
88    "", hasKey("error"),
89    "error.code", equalTo("methodNotAllowed"),
90    "error.message", containsString("No resource method found for POST, return 405 with Allow header")
91    );
92    }
93   
 
94  0 toggle @Test
95    public void pathNotFoundReturns404() {
96  0 given().when()
97    .get("default/v1/pathNotFound")
98    .then()
99    .statusCode(404)
100    .body(
101    "", hasKey("error"),
102    "error.code", equalTo("pathNotFound"),
103    "error.message", equalTo("/pathNotFound")
104    );
105    }
106   
 
107  0 toggle @Test
108    public void invalidQueryReturns400() {
109  0 given().param("orderBy", "invalid orderBy clause")
110    .when()
111    .get("default/v1")
112    .then()
113    .statusCode(400)
114    .body(
115    "", hasKey("error"),
116    "error.code", equalTo("invalidQuery"),
117    "error.message", equalTo("Invalid query")
118    );
119    }
120   
 
121  0 toggle @Test
122    public void noSuchWorkspaceReturns500() {
123  0 given().when()
124    .get("nonexistentNodeTypeConfigured/v1")
125    .then()
126    .statusCode(500)
127    .body(
128    "", hasKey("error"),
129    "error.code", equalTo("noSuchNodeType"),
130    "error.message", containsString("notFound")
131    );
132    }
133   
 
134  0 toggle @Test
135    public void noResourceMethodMatchedReturns404() {
136  0 given().when()
137    .get("default/noResourchMethodMatched")
138    .then()
139    .statusCode(404)
140    .body(
141    "", hasKey("error"),
142    "error.code", equalTo("notFound"),
143    "error.message", containsString("Could not find resource for full path")
144    );
145    }
146   
 
147  0 toggle @Test
148    public void readingNodeWithNullNodeTypesReturns404() {
149  0 given().when()
150    .get("nullNodeTypes/v1/travel/about")
151    .then()
152    .statusCode(404)
153    .body(
154    "", hasKey("error"),
155    "error.code", equalTo("notFound"),
156    "error.message", containsString("nodeTypes are configured as null, not serving any content")
157    );
158    }
159   
 
160  0 toggle @Test
161    public void queryingNodesWithNullNodeTypesReturns404() {
162  0 given().when()
163    .get("nullNodeTypes/v1")
164    .then()
165    .statusCode(404)
166    .body(
167    "", hasKey("error"),
168    "error.code", equalTo("notFound"),
169    "error.message", containsString("nodeTypes are configured as null, not serving any content")
170    );
171    }
172    }