Search in sources :

Example 1 with Id

use of com.hortonworks.registries.schemaregistry.webservice.ConfluentSchemaRegistryCompatibleResource.Id in project registry by hortonworks.

the class ConfluentRegistryCompatibleResourceTest method testIncompatibleSchemas.

@Test
public void testIncompatibleSchemas() throws Exception {
    String subject = testName();
    String response = postSubjectSchema(subject, fetchSchema("/device.avsc")).readEntity(String.class);
    ObjectMapper objectMapper = new ObjectMapper();
    long id = objectMapper.readValue(response, Id.class).getId();
    Assert.assertTrue(id > 0);
    // add incompatible schema
    Response incompatSchemaResponse = postSubjectSchema(subject, fetchSchema("/device-incompat.avsc"));
    Assert.assertEquals(incompatibleSchemaError().getStatus(), incompatSchemaResponse.getStatus());
    ErrorMessage errorMessage = objectMapper.readValue(incompatSchemaResponse.readEntity(String.class), ErrorMessage.class);
    Assert.assertEquals(incompatibleSchemaError().getEntity(), errorMessage);
}
Also used : Response(javax.ws.rs.core.Response) SchemaString(com.hortonworks.registries.schemaregistry.webservice.ConfluentSchemaRegistryCompatibleResource.SchemaString) Id(com.hortonworks.registries.schemaregistry.webservice.ConfluentSchemaRegistryCompatibleResource.Id) ErrorMessage(com.hortonworks.registries.schemaregistry.webservice.ConfluentSchemaRegistryCompatibleResource.ErrorMessage) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Test(org.junit.Test)

Example 2 with Id

use of com.hortonworks.registries.schemaregistry.webservice.ConfluentSchemaRegistryCompatibleResource.Id in project registry by hortonworks.

the class ConfluentRegistryCompatibleResourceTest method testSubjectWithVersionIdApi.

@Test
public void testSubjectWithVersionIdApi() throws Exception {
    String subject = testName();
    String response = postSubjectSchema(subject, fetchSchema("/device.avsc")).readEntity(String.class);
    ObjectMapper objectMapper = new ObjectMapper();
    long id = objectMapper.readValue(response, Id.class).getId();
    Assert.assertTrue(id > 0);
    String validResponse = rootTarget.path(String.format("/subjects/%s/versions/%s", subject, id)).request(MediaType.APPLICATION_JSON_TYPE).get(String.class);
    Schema schemaVersionEntry = new ObjectMapper().readValue(validResponse, Schema.class);
    Assert.assertEquals(subject, schemaVersionEntry.getSubject());
    Assert.assertEquals(id, schemaVersionEntry.getVersion().intValue());
    // invalid subject, valid version
    String invalidSubject = subject + new Random().nextInt();
    Response invalidSubjectResponse = rootTarget.path(String.format("/subjects/%s/versions/%s", invalidSubject, id)).request(MediaType.APPLICATION_JSON_TYPE).get();
    Assert.assertEquals(subjectNotFoundError().getEntity(), objectMapper.readValue(invalidSubjectResponse.readEntity(String.class), ErrorMessage.class));
    // valid subject, invalid versions
    String[] invalidVersions = { // non existing version
    id + 10 + "", // invalid version string
    "invalid-version", // invalid version number can not be <= 0
    -1 + "", // invalid version number can not be <= 0
    0 + "", // invalid version number, can not be > Integer.MAX_VALUE
    ((long) Integer.MAX_VALUE) + 10L + "" };
    for (String invalidVersion : invalidVersions) {
        Response invalidVersionResponse = rootTarget.path(String.format("/subjects/%s/versions/%s", subject, invalidVersion)).request(MediaType.APPLICATION_JSON_TYPE).get();
        Assert.assertEquals(versionNotFoundError().getEntity(), objectMapper.readValue(invalidVersionResponse.readEntity(String.class), ErrorMessage.class));
    }
}
Also used : Response(javax.ws.rs.core.Response) Random(java.util.Random) Schema(com.hortonworks.registries.schemaregistry.webservice.ConfluentSchemaRegistryCompatibleResource.Schema) SchemaString(com.hortonworks.registries.schemaregistry.webservice.ConfluentSchemaRegistryCompatibleResource.SchemaString) Id(com.hortonworks.registries.schemaregistry.webservice.ConfluentSchemaRegistryCompatibleResource.Id) ErrorMessage(com.hortonworks.registries.schemaregistry.webservice.ConfluentSchemaRegistryCompatibleResource.ErrorMessage) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Test(org.junit.Test)

Aggregations

ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)2 ErrorMessage (com.hortonworks.registries.schemaregistry.webservice.ConfluentSchemaRegistryCompatibleResource.ErrorMessage)2 Id (com.hortonworks.registries.schemaregistry.webservice.ConfluentSchemaRegistryCompatibleResource.Id)2 SchemaString (com.hortonworks.registries.schemaregistry.webservice.ConfluentSchemaRegistryCompatibleResource.SchemaString)2 Response (javax.ws.rs.core.Response)2 Test (org.junit.Test)2 Schema (com.hortonworks.registries.schemaregistry.webservice.ConfluentSchemaRegistryCompatibleResource.Schema)1 Random (java.util.Random)1