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);
}
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));
}
}
Aggregations