|
1 | 1 | package no.ssb.klass.api.applicationtest; |
2 | 2 |
|
3 | 3 | import static io.restassured.RestAssured.*; |
| 4 | + |
4 | 5 | import static org.hamcrest.Matchers.*; |
5 | 6 |
|
| 7 | +import io.restassured.http.ContentType; |
| 8 | + |
6 | 9 | import no.ssb.klass.testutil.TestDataProvider; |
| 10 | + |
7 | 11 | import org.junit.jupiter.api.Test; |
8 | 12 | import org.springframework.http.HttpStatus; |
9 | 13 |
|
10 | | -import io.restassured.http.ContentType; |
11 | | - |
12 | | - |
13 | 14 | /** |
14 | 15 | * @author Mads Lundemo, SSB. |
15 | 16 | */ |
16 | 17 | public class RestApiClassificationIntegrationTest extends AbstractRestApiApplicationTest { |
| 18 | + |
| 19 | + @Test |
| 20 | + public void restServiceAllowCors() { |
| 21 | + |
| 22 | + given().port(port) |
| 23 | + .accept(ContentType.JSON) |
| 24 | + .header("Origin", "https://www.ssb.no/klass") |
| 25 | + .get(REQUEST_WITH_ID, kommuneinndeling.getId()) |
| 26 | + .prettyPeek() |
| 27 | + .then() |
| 28 | + .assertThat() |
| 29 | + .header("Access-Control-Allow-Origin", equalTo("*")); |
| 30 | + } |
| 31 | + |
17 | 32 | // @formatter:off |
18 | 33 | @Test |
19 | 34 | public void restServiceReturnClassification() { |
20 | 35 | String urlParts = REQUEST + "/" + kommuneinndeling.getId(); |
21 | 36 |
|
22 | | - given().port(port).accept(ContentType.JSON) |
| 37 | + given().port(port) |
| 38 | + .accept(ContentType.JSON) |
23 | 39 | .get(REQUEST_WITH_ID, kommuneinndeling.getId()) |
24 | | -// .prettyPeek() |
| 40 | + // .prettyPeek() |
25 | 41 | .then() |
26 | | - .assertThat().statusCode(HttpStatus.OK.value()) |
27 | | - .assertThat().contentType(ContentType.JSON) |
| 42 | + .assertThat() |
| 43 | + .statusCode(HttpStatus.OK.value()) |
| 44 | + .assertThat() |
| 45 | + .contentType(ContentType.JSON) |
28 | 46 | // classification |
29 | | - .assertThat().body("name", equalTo(TestDataProvider.KOMMUNEINNDELING_NAVN_NO)) |
30 | | - .assertThat().body("description", equalTo(TestDataProvider.KOMMUNEINNDELING_BESKRIVELSE_NO)) |
31 | | - .assertThat().body("lastModified", notNullValue()) |
32 | | - .assertThat().body(JSON_LINKS + ".self.href", containsString("classifications/" + kommuneinndeling.getId())) |
| 47 | + .assertThat() |
| 48 | + .body("name", equalTo(TestDataProvider.KOMMUNEINNDELING_NAVN_NO)) |
| 49 | + .assertThat() |
| 50 | + .body("description", equalTo(TestDataProvider.KOMMUNEINNDELING_BESKRIVELSE_NO)) |
| 51 | + .assertThat() |
| 52 | + .body("lastModified", notNullValue()) |
| 53 | + .assertThat() |
| 54 | + .body( |
| 55 | + JSON_LINKS + ".self.href", |
| 56 | + containsString("classifications/" + kommuneinndeling.getId())) |
33 | 57 | // versions |
34 | | - .assertThat().body("versions.size()", equalTo(3)) |
| 58 | + .assertThat() |
| 59 | + .body("versions.size()", equalTo(3)) |
35 | 60 | // |
36 | | - .assertThat().body("versions[0].name", equalTo("Kommuneinndeling 2014")) |
37 | | - .assertThat().body("versions[0]._links.self.href", containsString("versions/")) |
| 61 | + .assertThat() |
| 62 | + .body("versions[0].name", equalTo("Kommuneinndeling 2014")) |
| 63 | + .assertThat() |
| 64 | + .body("versions[0]._links.self.href", containsString("versions/")) |
38 | 65 | // |
39 | | - .assertThat().body("versions[1].name", equalTo("Kommuneinndeling 2012")) |
40 | | - .assertThat().body("versions[1]._links.self.href", containsString("versions/")) |
| 66 | + .assertThat() |
| 67 | + .body("versions[1].name", equalTo("Kommuneinndeling 2012")) |
| 68 | + .assertThat() |
| 69 | + .body("versions[1]._links.self.href", containsString("versions/")) |
41 | 70 | // links |
42 | 71 | .body(JSON_LINKS + ".self.href", containsString(urlParts)) |
43 | | - .body(JSON_LINKS + ".codes.href", containsString(urlParts + "/codes" |
44 | | - + "{?from=<yyyy-MM-dd>,to=<yyyy-MM-dd>,csvSeparator,level,selectCodes,presentationNamePattern}")) |
45 | | - .body(JSON_LINKS + ".codesAt.href", containsString(urlParts + "/codesAt" |
46 | | - + "{?date=<yyyy-MM-dd>,csvSeparator,level,selectCodes,presentationNamePattern}")) |
47 | | - .body(JSON_LINKS + ".variant.href", containsString(urlParts + "/variant" |
48 | | - + "{?variantName,from=<yyyy-MM-dd>,to=<yyyy-MM-dd>,csvSeparator,level,selectCodes,presentationNamePattern}")) |
49 | | - .body(JSON_LINKS + ".variantAt.href", containsString(urlParts + "/variantAt" |
50 | | - + "{?variantName,date=<yyyy-MM-dd>,csvSeparator,level,selectCodes,presentationNamePattern}")) |
51 | | - .body(JSON_LINKS + ".corresponds.href", containsString(urlParts + "/corresponds" |
52 | | - + "{?targetClassificationId,from=<yyyy-MM-dd>,to=<yyyy-MM-dd>,csvSeparator}")) |
53 | | - .body(JSON_LINKS + ".correspondsAt.href", containsString(urlParts + "/correspondsAt" |
54 | | - + "{?targetClassificationId,date=<yyyy-MM-dd>,csvSeparator}")) |
55 | | - .body(JSON_LINKS + ".changes.href", containsString(urlParts + "/changes" |
56 | | - + "{?from=<yyyy-MM-dd>,to=<yyyy-MM-dd>,csvSeparator}")); |
| 72 | + .body( |
| 73 | + JSON_LINKS + ".codes.href", |
| 74 | + containsString( |
| 75 | + urlParts |
| 76 | + + "/codes" |
| 77 | + + "{?from=<yyyy-MM-dd>,to=<yyyy-MM-dd>,csvSeparator,level,selectCodes,presentationNamePattern}")) |
| 78 | + .body( |
| 79 | + JSON_LINKS + ".codesAt.href", |
| 80 | + containsString( |
| 81 | + urlParts |
| 82 | + + "/codesAt" |
| 83 | + + "{?date=<yyyy-MM-dd>,csvSeparator,level,selectCodes,presentationNamePattern}")) |
| 84 | + .body( |
| 85 | + JSON_LINKS + ".variant.href", |
| 86 | + containsString( |
| 87 | + urlParts |
| 88 | + + "/variant" |
| 89 | + + "{?variantName,from=<yyyy-MM-dd>,to=<yyyy-MM-dd>,csvSeparator,level,selectCodes,presentationNamePattern}")) |
| 90 | + .body( |
| 91 | + JSON_LINKS + ".variantAt.href", |
| 92 | + containsString( |
| 93 | + urlParts |
| 94 | + + "/variantAt" |
| 95 | + + "{?variantName,date=<yyyy-MM-dd>,csvSeparator,level,selectCodes,presentationNamePattern}")) |
| 96 | + .body( |
| 97 | + JSON_LINKS + ".corresponds.href", |
| 98 | + containsString( |
| 99 | + urlParts |
| 100 | + + "/corresponds" |
| 101 | + + "{?targetClassificationId,from=<yyyy-MM-dd>,to=<yyyy-MM-dd>,csvSeparator}")) |
| 102 | + .body( |
| 103 | + JSON_LINKS + ".correspondsAt.href", |
| 104 | + containsString( |
| 105 | + urlParts |
| 106 | + + "/correspondsAt" |
| 107 | + + "{?targetClassificationId,date=<yyyy-MM-dd>,csvSeparator}")) |
| 108 | + .body( |
| 109 | + JSON_LINKS + ".changes.href", |
| 110 | + containsString( |
| 111 | + urlParts |
| 112 | + + "/changes" |
| 113 | + + "{?from=<yyyy-MM-dd>,to=<yyyy-MM-dd>,csvSeparator}")); |
57 | 114 | } |
58 | 115 |
|
59 | 116 | @Test |
60 | 117 | public void restServiceReturnClassificationIncludeFutureVersions() { |
61 | 118 | String urlParts = REQUEST + "/" + kommuneinndeling.getId(); |
62 | 119 |
|
63 | | - given().port(port).accept(ContentType.JSON).param("includeFuture", true) |
| 120 | + given().port(port) |
| 121 | + .accept(ContentType.JSON) |
| 122 | + .param("includeFuture", true) |
64 | 123 | .get(REQUEST_WITH_ID, kommuneinndeling.getId()) |
65 | | - // .prettyPeek() |
| 124 | + // .prettyPeek() |
66 | 125 | .then() |
67 | | - .assertThat().statusCode(HttpStatus.OK.value()) |
68 | | - .assertThat().contentType(ContentType.JSON) |
| 126 | + .assertThat() |
| 127 | + .statusCode(HttpStatus.OK.value()) |
| 128 | + .assertThat() |
| 129 | + .contentType(ContentType.JSON) |
69 | 130 | // classification |
70 | | - .assertThat().body("name", equalTo(TestDataProvider.KOMMUNEINNDELING_NAVN_NO)) |
71 | | - .assertThat().body("description", equalTo(TestDataProvider.KOMMUNEINNDELING_BESKRIVELSE_NO)) |
72 | | - .assertThat().body("lastModified", notNullValue()) |
73 | | - .assertThat().body(JSON_LINKS + ".self.href", containsString("classifications/" + kommuneinndeling.getId())) |
| 131 | + .assertThat() |
| 132 | + .body("name", equalTo(TestDataProvider.KOMMUNEINNDELING_NAVN_NO)) |
| 133 | + .assertThat() |
| 134 | + .body("description", equalTo(TestDataProvider.KOMMUNEINNDELING_BESKRIVELSE_NO)) |
| 135 | + .assertThat() |
| 136 | + .body("lastModified", notNullValue()) |
| 137 | + .assertThat() |
| 138 | + .body( |
| 139 | + JSON_LINKS + ".self.href", |
| 140 | + containsString("classifications/" + kommuneinndeling.getId())) |
74 | 141 | // versions |
75 | | - .assertThat().body("versions.size()", equalTo(4)) |
| 142 | + .assertThat() |
| 143 | + .body("versions.size()", equalTo(4)) |
76 | 144 | // |
77 | | - .assertThat().body("versions[0].name", equalTo("Kommuneinndeling "+TestDataProvider.TEN_YEARS_LATER)) |
78 | | - .assertThat().body("versions[0]._links.self.href", containsString("versions/")) |
| 145 | + .assertThat() |
| 146 | + .body( |
| 147 | + "versions[0].name", |
| 148 | + equalTo("Kommuneinndeling " + TestDataProvider.TEN_YEARS_LATER)) |
| 149 | + .assertThat() |
| 150 | + .body("versions[0]._links.self.href", containsString("versions/")) |
79 | 151 | // |
80 | | - .assertThat().body("versions[1].name", equalTo("Kommuneinndeling 2014")) |
81 | | - .assertThat().body("versions[1]._links.self.href", containsString("versions/")) |
| 152 | + .assertThat() |
| 153 | + .body("versions[1].name", equalTo("Kommuneinndeling 2014")) |
| 154 | + .assertThat() |
| 155 | + .body("versions[1]._links.self.href", containsString("versions/")) |
82 | 156 | // |
83 | | - .assertThat().body("versions[2].name", equalTo("Kommuneinndeling 2012")) |
84 | | - .assertThat().body("versions[2]._links.self.href", containsString("versions/")) |
| 157 | + .assertThat() |
| 158 | + .body("versions[2].name", equalTo("Kommuneinndeling 2012")) |
| 159 | + .assertThat() |
| 160 | + .body("versions[2]._links.self.href", containsString("versions/")) |
85 | 161 | // |
86 | | - .assertThat().body("versions[3].name", equalTo("Kommuneinndeling 2008")) |
87 | | - .assertThat().body("versions[3]._links.self.href", containsString("versions/")); |
| 162 | + .assertThat() |
| 163 | + .body("versions[3].name", equalTo("Kommuneinndeling 2008")) |
| 164 | + .assertThat() |
| 165 | + .body("versions[3]._links.self.href", containsString("versions/")); |
88 | 166 | } |
89 | | -// @formatter:on |
| 167 | + // @formatter:on |
90 | 168 | } |
0 commit comments