use of org.zalando.nakadi.domain.EventType in project nakadi by zalando.
the class PartitionResolverTest method whenValidateWithKnownPartitionStrategyThenOk.
@Test
public void whenValidateWithKnownPartitionStrategyThenOk() throws Exception {
final EventType eventType = buildDefaultEventType();
eventType.setPartitionStrategy(RANDOM_STRATEGY);
partitionResolver.validate(eventType);
}
use of org.zalando.nakadi.domain.EventType in project nakadi by zalando.
the class CategoryChangeConstraintTest method cannotChangeCategory.
@Test
public void cannotChangeCategory() throws Exception {
final EventTypeTestBuilder builder = new EventTypeTestBuilder();
final EventType oldET = builder.category(EventCategory.BUSINESS).build();
final EventType newET = builder.category(EventCategory.DATA).build();
final SchemaEvolutionConstraint constraint = new CategoryChangeConstraint();
assertThat(constraint.validate(oldET, newET), isPresent());
}
use of org.zalando.nakadi.domain.EventType in project nakadi by zalando.
the class SchemaEvolutionServiceTest method compatibilityModeMigrationAllowedChanges.
@Test
public void compatibilityModeMigrationAllowedChanges() throws Exception {
final EventTypeTestBuilder builder = EventTypeTestBuilder.builder().compatibilityMode(CompatibilityMode.FORWARD);
final EventType oldEventType = builder.build();
final EventType newEventType = builder.compatibilityMode(CompatibilityMode.COMPATIBLE).build();
Mockito.doReturn(Optional.empty()).when(evolutionConstraint).validate(oldEventType, newEventType);
final List<SchemaChange.Type> allowedChanges = Lists.newArrayList(DESCRIPTION_CHANGED, TITLE_CHANGED, PROPERTIES_ADDED, REQUIRED_ARRAY_EXTENDED, ADDITIONAL_PROPERTIES_CHANGED, ADDITIONAL_ITEMS_CHANGED);
final List<SchemaChange.Type> notAllowedChanges = Lists.newArrayList(ID_CHANGED, SCHEMA_REMOVED, TYPE_CHANGED, NUMBER_OF_ITEMS_CHANGED, PROPERTY_REMOVED, DEPENDENCY_ARRAY_CHANGED, DEPENDENCY_SCHEMA_CHANGED, COMPOSITION_METHOD_CHANGED, ATTRIBUTE_VALUE_CHANGED, ENUM_ARRAY_CHANGED, SUB_SCHEMA_CHANGED, DEPENDENCY_SCHEMA_REMOVED, REQUIRED_ARRAY_CHANGED);
allowedChanges.forEach(changeType -> {
Mockito.doReturn(MINOR).when(forwardChanges).get(any());
Mockito.doReturn(Lists.newArrayList(new SchemaChange(changeType, "#/"))).when(schemaDiff).collectChanges(any(), any());
final EventType eventType;
try {
eventType = service.evolve(oldEventType, newEventType);
assertThat(eventType.getSchema().getVersion(), is(equalTo(new Version("1.1.0"))));
} catch (final InvalidEventTypeException e) {
fail();
}
});
notAllowedChanges.forEach(changeType -> {
Mockito.doReturn(Lists.newArrayList(new SchemaChange(changeType, "#/"))).when(schemaDiff).collectChanges(any(), any());
try {
service.evolve(oldEventType, newEventType);
fail();
} catch (final InvalidEventTypeException e) {
}
});
}
use of org.zalando.nakadi.domain.EventType in project nakadi by zalando.
the class SchemaEvolutionServiceTest method whenIncompatibleModeAllowMajorChanges.
@Test
public void whenIncompatibleModeAllowMajorChanges() throws Exception {
final EventTypeTestBuilder builder = EventTypeTestBuilder.builder().compatibilityMode(CompatibilityMode.NONE);
final EventType oldEventType = builder.build();
final EventType newEventType = builder.build();
Mockito.doReturn(Optional.empty()).when(evolutionConstraint).validate(oldEventType, newEventType);
Mockito.doReturn(MAJOR).when(forwardChanges).get(any());
Mockito.doReturn(Lists.newArrayList(new SchemaChange(TITLE_CHANGED, "#/"))).when(schemaDiff).collectChanges(any(), any());
final EventType eventType = service.evolve(oldEventType, newEventType);
assertThat(eventType.getSchema().getVersion(), is(equalTo(new Version("2.0.0"))));
verify(evolutionConstraint).validate(oldEventType, newEventType);
}
use of org.zalando.nakadi.domain.EventType in project nakadi by zalando.
the class SchemaEvolutionServiceTest method whenPatchChangesBumpVersion.
@Test
public void whenPatchChangesBumpVersion() throws Exception {
final EventTypeTestBuilder builder = EventTypeTestBuilder.builder();
final EventType oldEventType = builder.build();
final EventType newEventType = builder.build();
Mockito.doReturn(Optional.empty()).when(evolutionConstraint).validate(oldEventType, newEventType);
Mockito.doReturn(PATCH).when(compatibleChanges).get(any());
Mockito.doReturn(Lists.newArrayList(new SchemaChange(TITLE_CHANGED, "#/"))).when(schemaDiff).collectChanges(any(), any());
final EventType eventType = service.evolve(oldEventType, newEventType);
assertThat(eventType.getSchema().getVersion(), is(equalTo(new Version("1.0.1"))));
verify(evolutionConstraint).validate(oldEventType, newEventType);
}
Aggregations