|
5 | 5 | import io.restassured.path.json.JsonPath; |
6 | 6 | import io.restassured.response.Response; |
7 | 7 | import jakarta.json.Json; |
| 8 | +import jakarta.json.JsonObjectBuilder; |
8 | 9 | import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST; |
9 | 10 | import static jakarta.ws.rs.core.Response.Status.CREATED; |
10 | 11 | import static jakarta.ws.rs.core.Response.Status.FORBIDDEN; |
11 | 12 | import static jakarta.ws.rs.core.Response.Status.OK; |
12 | 13 | import java.util.UUID; |
13 | 14 | import org.hamcrest.CoreMatchers; |
| 15 | +import static org.hamcrest.CoreMatchers.containsString; |
14 | 16 | import static org.hamcrest.CoreMatchers.equalTo; |
15 | 17 | import static org.hamcrest.CoreMatchers.is; |
16 | 18 | import static org.hamcrest.CoreMatchers.nullValue; |
@@ -277,6 +279,116 @@ public void testAddAndDeleteDatasetType() { |
277 | 279 | typeDeleted.then().assertThat().statusCode(OK.getStatusCode()); |
278 | 280 |
|
279 | 281 | } |
| 282 | + |
| 283 | + @Test |
| 284 | + public void testAddDatasetTypeWithMDBLicense(){ |
| 285 | + |
| 286 | + Response createUser = UtilIT.createRandomUser(); |
| 287 | + createUser.then().assertThat().statusCode(OK.getStatusCode()); |
| 288 | + String username = UtilIT.getUsernameFromResponse(createUser); |
| 289 | + String apiToken = UtilIT.getApiTokenFromResponse(createUser); |
| 290 | + UtilIT.setSuperuserStatus(username, true).then().assertThat().statusCode(OK.getStatusCode()); |
| 291 | + |
| 292 | + JsonObjectBuilder job = Json.createObjectBuilder(); |
| 293 | + job.add("name", "testDatasetType"); |
| 294 | + job.add("linkedMetadataBlocks", Json.createArrayBuilder().add("geospatial")); |
| 295 | + job.add("availableLicenses", Json.createArrayBuilder().add("CC0 1.0")); |
| 296 | + |
| 297 | + Response typeAdded = UtilIT.addDatasetType(job.build(), apiToken); |
| 298 | + typeAdded.prettyPrint(); |
| 299 | + |
| 300 | + typeAdded.then().assertThat().statusCode(OK.getStatusCode()); |
| 301 | + |
| 302 | + Long doomed = JsonPath.from(typeAdded.getBody().asString()).getLong("data.id"); |
| 303 | + |
| 304 | + System.out.println("doomed: " + doomed); |
| 305 | + Response getTypeById = UtilIT.getDatasetType(doomed.toString()); |
| 306 | + getTypeById.prettyPrint(); |
| 307 | + getTypeById.then().assertThat().statusCode(OK.getStatusCode()); |
| 308 | + |
| 309 | + System.out.println("deleting type with id " + doomed); |
| 310 | + Response typeDeleted = UtilIT.deleteDatasetTypes(doomed, apiToken); |
| 311 | + typeDeleted.prettyPrint(); |
| 312 | + typeDeleted.then().assertThat().statusCode(OK.getStatusCode()); |
| 313 | + |
| 314 | + //bad metadatablock name |
| 315 | + job = Json.createObjectBuilder(); |
| 316 | + job.add("name", "testDatasetType"); |
| 317 | + job.add("linkedMetadataBlocks", Json.createArrayBuilder().add("geospatialXXX")); |
| 318 | + job.add("availableLicenses", Json.createArrayBuilder().add("CC0 1.0")); |
| 319 | + |
| 320 | + typeAdded = UtilIT.addDatasetType(job.build(), apiToken); |
| 321 | + typeAdded.prettyPrint(); |
| 322 | + |
| 323 | + typeAdded.then().assertThat() |
| 324 | + .statusCode(BAD_REQUEST.getStatusCode()) |
| 325 | + .body("message", containsString("Metadata block not found:")); |
| 326 | + |
| 327 | + job = Json.createObjectBuilder(); |
| 328 | + job.add("name", "testDatasetType"); |
| 329 | + job.add("linkedMetadataBlocks", Json.createArrayBuilder().add("geospatial")); |
| 330 | + job.add("availableLicenses", Json.createArrayBuilder().add("CC0 12.0")); |
| 331 | + |
| 332 | + typeAdded = UtilIT.addDatasetType(job.build(), apiToken); |
| 333 | + typeAdded.prettyPrint(); |
| 334 | + typeAdded.then().assertThat() |
| 335 | + .statusCode(BAD_REQUEST.getStatusCode()) |
| 336 | + .body("message", containsString("License not found:")); |
| 337 | + |
| 338 | + } |
| 339 | + |
| 340 | + @Test |
| 341 | + public void testUpdateDatasetTypeWithLicense(){ |
| 342 | + |
| 343 | + Response createUser = UtilIT.createRandomUser(); |
| 344 | + createUser.then().assertThat().statusCode(OK.getStatusCode()); |
| 345 | + String username = UtilIT.getUsernameFromResponse(createUser); |
| 346 | + String apiToken = UtilIT.getApiTokenFromResponse(createUser); |
| 347 | + UtilIT.setSuperuserStatus(username, true).then().assertThat().statusCode(OK.getStatusCode()); |
| 348 | + |
| 349 | + JsonObjectBuilder job = Json.createObjectBuilder(); |
| 350 | + job.add("name", "testDatasetType"); |
| 351 | + |
| 352 | + Response typeAdded = UtilIT.addDatasetType(job.build(), apiToken); |
| 353 | + typeAdded.prettyPrint(); |
| 354 | + |
| 355 | + typeAdded.then().assertThat().statusCode(OK.getStatusCode()); |
| 356 | + |
| 357 | + String availableLicenseArray = """ |
| 358 | + ["CC0 1.0"] |
| 359 | +"""; |
| 360 | + |
| 361 | + Response addCC0 = UtilIT.updateDatasetTypeAvailableLicense("testDatasetType", availableLicenseArray, apiToken); |
| 362 | + addCC0.prettyPrint(); |
| 363 | + addCC0.then().assertThat(). |
| 364 | + statusCode(OK.getStatusCode()) |
| 365 | + .body("data.availableLicenses.after[0]", CoreMatchers.is("CC0 1.0")); |
| 366 | + |
| 367 | + |
| 368 | + String badAvailableLicenseArray = """ |
| 369 | + ["CC0 xx.0"] |
| 370 | +"""; |
| 371 | + |
| 372 | + addCC0 = UtilIT.updateDatasetTypeAvailableLicense("testDatasetType", badAvailableLicenseArray, apiToken); |
| 373 | + addCC0.prettyPrint(); |
| 374 | + addCC0.then().assertThat(). |
| 375 | + statusCode(BAD_REQUEST.getStatusCode()) |
| 376 | + .body("message", containsString("License not found:")); |
| 377 | + |
| 378 | + |
| 379 | + Long doomed = JsonPath.from(typeAdded.getBody().asString()).getLong("data.id"); |
| 380 | + |
| 381 | + System.out.println("doomed: " + doomed); |
| 382 | + Response getTypeById = UtilIT.getDatasetType(doomed.toString()); |
| 383 | + getTypeById.prettyPrint(); |
| 384 | + getTypeById.then().assertThat().statusCode(OK.getStatusCode()); |
| 385 | + |
| 386 | + System.out.println("deleting type with id " + doomed); |
| 387 | + Response typeDeleted = UtilIT.deleteDatasetTypes(doomed, apiToken); |
| 388 | + typeDeleted.prettyPrint(); |
| 389 | + typeDeleted.then().assertThat().statusCode(OK.getStatusCode()); |
| 390 | + |
| 391 | + } |
280 | 392 |
|
281 | 393 | @Test |
282 | 394 | public void testUpdateDatasetTypeLinksWithMetadataBlocks() { |
|
0 commit comments