Search in sources :

Example 16 with JsonWebMessage

use of org.hisp.dhis.webapi.json.domain.JsonWebMessage in project dhis2-core by dhis2.

the class MetadataWorkflowControllerTest method testAcceptProposal_ConflictMissingAuthority.

@Test
void testAcceptProposal_ConflictMissingAuthority() {
    User guest = switchToNewUser("guest");
    String proposalId = postUpdateNameProposal(defaultTargetId, "New name");
    JsonWebMessage message = assertWebMessage("Conflict", 409, "WARNING", "One more more errors occurred, please see full details in import report.", POST("/metadata/proposals/" + proposalId).content(HttpStatus.CONFLICT));
    JsonErrorReport error = message.find(JsonErrorReport.class, report -> report.getErrorCode() == ErrorCode.E3001);
    JsonMetadataProposal proposal = GET("/metadata/proposals/" + proposalId).content().as(JsonMetadataProposal.class);
    assertEquals(String.format("E3001 User `guest guest [%s] (User)` is not allowed to update object `New name [%s] (OrganisationUnit)`.\n", guest.getUid(), defaultTargetId), proposal.getReason());
    // but the system could accept the proposal
    switchContextToUser(system);
    assertStatus(HttpStatus.OK, PUT("/metadata/proposals/" + proposalId));
    assertStatus(HttpStatus.OK, POST("/metadata/proposals/" + proposalId));
}
Also used : User(org.hisp.dhis.user.User) JsonWebMessage(org.hisp.dhis.webapi.json.domain.JsonWebMessage) JsonErrorReport(org.hisp.dhis.webapi.json.domain.JsonErrorReport) JsonMetadataProposal(org.hisp.dhis.webapi.controller.json.JsonMetadataProposal) DhisControllerConvenienceTest(org.hisp.dhis.webapi.DhisControllerConvenienceTest) Test(org.junit.jupiter.api.Test)

Example 17 with JsonWebMessage

use of org.hisp.dhis.webapi.json.domain.JsonWebMessage in project dhis2-core by dhis2.

the class MetadataWorkflowControllerTest method testMakeUpdateProposal_ConflictIllegalChange.

@Test
void testMakeUpdateProposal_ConflictIllegalChange() {
    JsonWebMessage message = assertWebMessage("Conflict", 409, "WARNING", "One more more errors occurred, please see full details in import report.", POST("/metadata/proposals/", "{" + "'type':'UPDATE'," + "'target':'ORGANISATION_UNIT'," + "'targetId': '" + defaultTargetId + "'," + "'change':[{'op':'not-json-patch-op'}]" + "}").content(HttpStatus.CONFLICT));
    JsonErrorReport error = message.find(JsonErrorReport.class, report -> report.getErrorCode() == ErrorCode.E4031);
    assertEquals("Property `change` requires a valid JSON payload, was given `[{\"op\":\"not-json-patch-op\"}]`.", error.getMessage());
    assertEquals("change", error.getErrorProperties().get(0));
}
Also used : JsonWebMessage(org.hisp.dhis.webapi.json.domain.JsonWebMessage) JsonErrorReport(org.hisp.dhis.webapi.json.domain.JsonErrorReport) DhisControllerConvenienceTest(org.hisp.dhis.webapi.DhisControllerConvenienceTest) Test(org.junit.jupiter.api.Test)

Example 18 with JsonWebMessage

use of org.hisp.dhis.webapi.json.domain.JsonWebMessage in project dhis2-core by dhis2.

the class MetadataWorkflowControllerTest method testAcceptRemoveProposal_ConflictTargetAlreadyDeleted.

@Test
void testAcceptRemoveProposal_ConflictTargetAlreadyDeleted() {
    String proposalId = postRemoveProposal(defaultTargetId);
    assertStatus(HttpStatus.OK, DELETE("/organisationUnits/" + defaultTargetId));
    JsonWebMessage message = assertWebMessage("Conflict", 409, "WARNING", "One more more errors occurred, please see full details in import report.", POST("/metadata/proposals/" + proposalId).content(HttpStatus.CONFLICT));
    JsonErrorReport error = message.find(JsonErrorReport.class, report -> report.getErrorCode() == ErrorCode.E4015);
    assertEquals("Property `targetId` refers to an object that does not exist, could not find `" + defaultTargetId + "`", error.getMessage());
    assertEquals("targetId", error.getErrorProperties().get(0));
}
Also used : JsonWebMessage(org.hisp.dhis.webapi.json.domain.JsonWebMessage) JsonErrorReport(org.hisp.dhis.webapi.json.domain.JsonErrorReport) DhisControllerConvenienceTest(org.hisp.dhis.webapi.DhisControllerConvenienceTest) Test(org.junit.jupiter.api.Test)

Example 19 with JsonWebMessage

use of org.hisp.dhis.webapi.json.domain.JsonWebMessage in project dhis2-core by dhis2.

the class MetadataWorkflowControllerTest method testAcceptUpdateProposal_ConflictTargetAlreadyDeleted.

@Test
void testAcceptUpdateProposal_ConflictTargetAlreadyDeleted() {
    String proposalId = postUpdateNameProposal(defaultTargetId, "New name");
    assertStatus(HttpStatus.OK, DELETE("/organisationUnits/" + defaultTargetId));
    JsonWebMessage message = assertWebMessage("Conflict", 409, "WARNING", "One more more errors occurred, please see full details in import report.", POST("/metadata/proposals/" + proposalId).content(HttpStatus.CONFLICT));
    JsonErrorReport error = message.find(JsonErrorReport.class, report -> report.getErrorCode() == ErrorCode.E4015);
    assertEquals("Property `targetId` refers to an object that does not exist, could not find `" + defaultTargetId + "`", error.getMessage());
    assertEquals("targetId", error.getErrorProperties().get(0));
}
Also used : JsonWebMessage(org.hisp.dhis.webapi.json.domain.JsonWebMessage) JsonErrorReport(org.hisp.dhis.webapi.json.domain.JsonErrorReport) DhisControllerConvenienceTest(org.hisp.dhis.webapi.DhisControllerConvenienceTest) Test(org.junit.jupiter.api.Test)

Example 20 with JsonWebMessage

use of org.hisp.dhis.webapi.json.domain.JsonWebMessage in project dhis2-core by dhis2.

the class MetadataImportExportControllerTest method testPostInValidGeoJsonAttribute.

@Test
void testPostInValidGeoJsonAttribute() {
    JsonWebMessage message = POST("/metadata", "{\"organisationUnits\": [ {\"id\":\"rXnqqH2Pu6N\",\"name\": \"My Unit 2\",\"shortName\": \"OU2\",\"openingDate\": \"2020-01-01\"," + "\"attributeValues\": [{\"value\":  \"{\\\"type\\\": \\\"Polygon\\\"}\"," + "\"attribute\": {\"id\": \"RRH9IFiZZYN\"}}]}]," + "\"attributes\":[{\"id\":\"RRH9IFiZZYN\",\"valueType\":\"GEOJSON\",\"organisationUnitAttribute\":true,\"name\":\"testgeojson\"}]}").content(HttpStatus.CONFLICT).as(JsonWebMessage.class);
    assertNotNull(message.find(JsonErrorReport.class, report -> report.getErrorCode() == ErrorCode.E6004));
}
Also used : Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) JsonAttributeValue(org.hisp.dhis.webapi.json.domain.JsonAttributeValue) ContentType(org.hisp.dhis.webapi.WebClient.ContentType) Body(org.hisp.dhis.webapi.WebClient.Body) GeoJsonObject(org.geojson.GeoJsonObject) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) IOException(java.io.IOException) JsonWebMessage(org.hisp.dhis.webapi.json.domain.JsonWebMessage) JsonIdentifiableObject(org.hisp.dhis.webapi.json.domain.JsonIdentifiableObject) DhisControllerConvenienceTest(org.hisp.dhis.webapi.DhisControllerConvenienceTest) Test(org.junit.jupiter.api.Test) HttpStatus(org.springframework.http.HttpStatus) JsonObject(org.hisp.dhis.jsontree.JsonObject) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) ErrorCode(org.hisp.dhis.feedback.ErrorCode) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) JsonImportSummary(org.hisp.dhis.webapi.json.domain.JsonImportSummary) JsonErrorReport(org.hisp.dhis.webapi.json.domain.JsonErrorReport) Polygon(org.geojson.Polygon) JsonWebMessage(org.hisp.dhis.webapi.json.domain.JsonWebMessage) JsonErrorReport(org.hisp.dhis.webapi.json.domain.JsonErrorReport) DhisControllerConvenienceTest(org.hisp.dhis.webapi.DhisControllerConvenienceTest) Test(org.junit.jupiter.api.Test)

Aggregations

DhisControllerConvenienceTest (org.hisp.dhis.webapi.DhisControllerConvenienceTest)24 JsonWebMessage (org.hisp.dhis.webapi.json.domain.JsonWebMessage)24 Test (org.junit.jupiter.api.Test)24 JsonErrorReport (org.hisp.dhis.webapi.json.domain.JsonErrorReport)13 JsonTypeReport (org.hisp.dhis.webapi.json.domain.JsonTypeReport)3 JsonArray (org.hisp.dhis.jsontree.JsonArray)2 JsonImportSummary (org.hisp.dhis.webapi.json.domain.JsonImportSummary)2 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 IOException (java.io.IOException)1 GeoJsonObject (org.geojson.GeoJsonObject)1 Polygon (org.geojson.Polygon)1 ErrorCode (org.hisp.dhis.feedback.ErrorCode)1 JsonObject (org.hisp.dhis.jsontree.JsonObject)1 User (org.hisp.dhis.user.User)1 Body (org.hisp.dhis.webapi.WebClient.Body)1 ContentType (org.hisp.dhis.webapi.WebClient.ContentType)1 JsonMetadataProposal (org.hisp.dhis.webapi.controller.json.JsonMetadataProposal)1 JsonAttributeValue (org.hisp.dhis.webapi.json.domain.JsonAttributeValue)1 JsonIdentifiableObject (org.hisp.dhis.webapi.json.domain.JsonIdentifiableObject)1 JsonStats (org.hisp.dhis.webapi.json.domain.JsonStats)1