Loading vessels-commands/src/main/java/es/redmic/vesselscommands/aggregate/VesselAggregate.java +18 −28 Original line number Diff line number Diff line Loading @@ -119,60 +119,43 @@ public class VesselAggregate extends Aggregate { } @Override public void loadFromHistory(Event history) { public void loadFromHistory(Event event) { logger.debug("Cargando último estado del vessel ", history.getAggregateId()); logger.debug("Cargando último estado del vessel ", event.getAggregateId()); String eventType = history.getType(); check(event); String eventType = event.getType(); switch (eventType) { case "CREATE": logger.debug("En fase de creación"); apply((VesselEvent) history); break; case "CREATED": logger.debug("Item creado"); apply((VesselEvent) history); break; case "UPDATE": logger.debug("En fase de modificación"); apply((VesselEvent) history); apply((VesselEvent) event); break; case "UPDATED": logger.debug("Item modificado"); apply((VesselEvent) history); apply((VesselEvent) event); break; case "DELETED": logger.debug("Item borrado"); apply((VesselDeletedEvent) history); apply((VesselDeletedEvent) event); break; // CANCELLED case "CREATE_CANCELLED": logger.debug("Compensación por creación fallida"); apply((CreateVesselCancelledEvent) history); apply((CreateVesselCancelledEvent) event); break; case "UPDATE_CANCELLED": case "DELETE_CANCELLED": logger.debug("Compensación por edición/borrado fallido"); apply((VesselEvent) history); break; case "UPDATE_VESSELTYPE": logger.debug("En fase de edición parcial de veseltype en vessel"); apply(history); apply((VesselEvent) event); break; default: super._loadFromHistory(history); logger.debug("Evento no manejado ", event.getType()); break; } } public void apply(UpdateVesselTypeInVesselEvent event) { if (this.vessel == null) this.vessel = new VesselDTO(); this.vessel.setType(event.getVesselType()); super.apply(event); } public void apply(CreateVesselCancelledEvent event) { this.deleted = true; apply(event); Loading @@ -183,6 +166,13 @@ public class VesselAggregate extends Aggregate { super.apply(event); } public void apply(UpdateVesselTypeInVesselEvent event) { if (this.vessel == null) this.vessel = new VesselDTO(); this.vessel.setType(event.getVesselType()); super.apply(event); } public void apply(VesselEvent event) { this.vessel = event.getVessel(); super.apply(event); Loading vessels-commands/src/main/java/es/redmic/vesselscommands/aggregate/VesselTrackingAggregate.java +20 −32 Original line number Diff line number Diff line Loading @@ -115,55 +115,53 @@ public class VesselTrackingAggregate extends Aggregate { } @Override public void loadFromHistory(Event history) { public void loadFromHistory(Event event) { logger.debug("Cargando último estado del vesselTracking ", history.getAggregateId()); logger.debug("Cargando último estado del vesselTracking ", event.getAggregateId()); String eventType = history.getType(); check(event); // TODO: Si se trata de un evento no final, controlar el error. String eventType = event.getType(); switch (eventType) { case "CREATE": logger.debug("En fase de creación"); apply((VesselTrackingEvent) history); break; case "CREATED": logger.debug("Item creado"); apply((VesselTrackingEvent) history); break; case "UPDATE": logger.debug("En fase de modificación"); apply((VesselTrackingEvent) history); apply((VesselTrackingEvent) event); break; case "UPDATED": logger.debug("Item modificado"); apply((VesselTrackingEvent) history); apply((VesselTrackingEvent) event); break; case "DELETED": logger.debug("Item borrado"); apply((VesselTrackingDeletedEvent) history); apply((VesselTrackingDeletedEvent) event); break; // CANCELLED case "CREATE_CANCELLED": logger.debug("Compensación por creación fallida"); apply(history); apply(event); break; case "UPDATE_CANCELLED": case "DELETE_CANCELLED": logger.debug("Compensación por edición/borrado fallido"); apply((VesselTrackingEvent) history); break; case "UPDATE_VESSELTYPE": logger.debug("En fase de edición parcial de veseltype en vessel"); apply(history); apply((VesselTrackingEvent) event); break; default: super._loadFromHistory(history); logger.debug("Evento no manejado ", event.getType()); break; } } public void apply(CreateVesselTrackingCancelledEvent event) { this.deleted = true; apply(event); } public void apply(VesselTrackingDeletedEvent event) { this.deleted = true; super.apply(event); } public void apply(UpdateVesselInVesselTrackingEvent event) { if (this.vesselTracking == null) this.vesselTracking = new VesselTrackingDTO(); Loading @@ -177,16 +175,6 @@ public class VesselTrackingAggregate extends Aggregate { super.apply(event); } public void apply(CreateVesselTrackingCancelledEvent event) { this.deleted = true; apply(event); } public void apply(VesselTrackingDeletedEvent event) { this.deleted = true; super.apply(event); } public void apply(VesselTrackingEvent event) { this.vesselTracking = event.getVesselTracking(); super.apply(event); Loading vessels-commands/src/main/java/es/redmic/vesselscommands/aggregate/VesselTypeAggregate.java +11 −17 Original line number Diff line number Diff line Loading @@ -99,45 +99,39 @@ public class VesselTypeAggregate extends Aggregate { } @Override public void loadFromHistory(Event history) { public void loadFromHistory(Event event) { logger.debug("Cargando último estado del vessel type ", history.getAggregateId()); logger.debug("Cargando último estado del vessel type ", event.getAggregateId()); String eventType = history.getType(); check(event); String eventType = event.getType(); switch (eventType) { case "CREATE": logger.debug("En fase de creación"); apply((VesselTypeEvent) history); break; case "CREATED": logger.debug("Item creado"); apply((VesselTypeEvent) history); break; case "UPDATE": logger.debug("En fase de modificación"); apply((VesselTypeEvent) history); apply((VesselTypeEvent) event); break; case "UPDATED": logger.debug("Item modificado"); apply((VesselTypeEvent) history); apply((VesselTypeEvent) event); break; case "DELETED": logger.debug("Item borrado"); apply((VesselTypeDeletedEvent) history); apply((VesselTypeDeletedEvent) event); break; // CANCELLED case "CREATE_CANCELLED": logger.debug("Compensación por creación fallida"); apply((CreateVesselTypeCancelledEvent) history); apply((CreateVesselTypeCancelledEvent) event); break; case "UPDATE_CANCELLED": case "DELETE_CANCELLED": logger.debug("Compensación por edición/borrado fallido"); apply((VesselTypeEvent) history); apply((VesselTypeEvent) event); break; default: super._loadFromHistory(history); logger.debug("Evento no manejado ", event.getType()); } } Loading vessels-commands/src/test/java/es/redmic/test/vesselscommands/unit/aggregate/vessel/ApplyEventTest.java +27 −65 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import es.redmic.brokerlib.avro.common.Event; import es.redmic.commandslib.exceptions.ItemLockedException; import es.redmic.vesselslib.events.vessel.common.VesselEvent; import es.redmic.vesselslib.events.vessel.create.CreateVesselEvent; import es.redmic.vesselslib.events.vessel.create.VesselCreatedEvent; Loading @@ -23,16 +24,6 @@ import es.redmic.vesselslib.events.vessel.update.VesselUpdatedEvent; @RunWith(MockitoJUnitRunner.class) public class ApplyEventTest extends AggregateBaseTest { @Test public void applyCreateVesselEvent_ChangeAggrefateState_IfProcessIsOk() { CreateVesselEvent evt = getCreateVesselEvent(); agg.apply(evt); checkCreateOrUpdateState(evt); } @Test public void applyVesselCreatedEvent_ChangeAggrefateState_IfProcessIsOk() { Loading @@ -40,17 +31,7 @@ public class ApplyEventTest extends AggregateBaseTest { agg.apply(evt); checkCreateOrUpdateState(evt); } @Test public void applyUpdateVesselEvent_ChangeAggregateState_IfProcessIsOk() { UpdateVesselEvent evt = getUpdateVesselEvent(); agg.apply(evt); checkCreateOrUpdateState(evt); checkCreatedOrUpdatedState(evt); } @Test Loading @@ -60,17 +41,7 @@ public class ApplyEventTest extends AggregateBaseTest { agg.apply(evt); checkCreateOrUpdateState(evt); } @Test public void applyDeleteVesselEvent_ChangeAggregateState_IfProcessIsOk() { DeleteVesselEvent evt = getDeleteVesselEvent(); agg.apply(evt); checkDeleteState(evt); checkCreatedOrUpdatedState(evt); } @Test Loading @@ -84,59 +55,49 @@ public class ApplyEventTest extends AggregateBaseTest { } @Test public void loadFromHistory_ChangeAggregateStateToCreate_IfEventIsCreate() { public void loadFromHistory_ChangeAggregateStateToCreated_IfEventIsCreated() { CreateVesselEvent evt = getCreateVesselEvent(); VesselCreatedEvent evt = getVesselCreatedEvent(); agg.loadFromHistory(evt); checkCreateOrUpdateState(evt); checkCreatedOrUpdatedState(evt); } @Test public void loadFromHistory_ChangeAggregateStateToUpdate_IfEventIsUpdate() { @Test(expected = ItemLockedException.class) public void loadFromHistory_ThrowItemLockedException_IfEventIsCreate() { UpdateVesselEvent evt = getUpdateVesselEvent(); CreateVesselEvent evt = getCreateVesselEvent(); agg.loadFromHistory(evt); checkCreateOrUpdateState(evt); } @Test public void loadFromHistory_ChangeAggregateStateToDelete_IfEventIsDelete() { public void loadFromHistory_ChangeAggregateStateToUpdated_IfEventIsUpdated() { DeleteVesselEvent evt = getDeleteVesselEvent(); VesselUpdatedEvent evt = getVesselUpdatedEvent(); agg.loadFromHistory(evt); checkDeleteState(evt); checkCreatedOrUpdatedState(evt); } @Test public void loadFromHistory_ChangeAggregateStateToDelete_IfLastEventIsDelete() { List<Event> history = new ArrayList<>(); history.add(getCreateVesselEvent()); history.add(getUpdateVesselEvent()); history.add(getDeleteVesselEvent()); history.add(getDeleteVesselEvent()); @Test(expected = ItemLockedException.class) public void loadFromHistory_ThrowItemLockedException_IfEventIsUpdate() { agg.loadFromHistory(history); UpdateVesselEvent evt = getUpdateVesselEvent(); checkDeleteState((DeleteVesselEvent) history.get(3)); agg.loadFromHistory(evt); } @Test public void loadFromHistory_ChangeAggregateStateToDeleted_IfEventIsDelete() { public void loadFromHistory_ChangeAggregateStateToDeleted_IfEventIsDeleted() { List<Event> history = new ArrayList<>(); history.add(getCreateVesselEvent()); history.add(getUpdateVesselEvent()); history.add(getDeleteVesselEvent()); history.add(getVesselCreatedEvent()); history.add(getVesselUpdatedEvent()); history.add(getVesselDeletedEvent()); history.add(getVesselDeletedEvent()); Loading @@ -145,18 +106,19 @@ public class ApplyEventTest extends AggregateBaseTest { checkDeletedState((VesselDeletedEvent) history.get(3)); } private void checkCreateOrUpdateState(VesselEvent evt) { @Test(expected = ItemLockedException.class) public void loadFromHistory_ThrowItemLockedException_IfEventIsDelete() { assertEquals(agg.getVersion(), evt.getVersion()); assertEquals(agg.getAggregateId(), evt.getAggregateId()); assertEquals(agg.getVessel(), evt.getVessel()); assertFalse(agg.isDeleted()); DeleteVesselEvent evt = getDeleteVesselEvent(); agg.loadFromHistory(evt); } private void checkDeleteState(DeleteVesselEvent evt) { private void checkCreatedOrUpdatedState(VesselEvent evt) { assertEquals(agg.getVersion(), evt.getVersion()); assertEquals(agg.getAggregateId(), evt.getAggregateId()); assertEquals(agg.getVessel(), evt.getVessel()); assertFalse(agg.isDeleted()); } Loading vessels-commands/src/test/java/es/redmic/test/vesselscommands/unit/aggregate/vesseltracking/ApplyEventTest.java +27 −65 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import es.redmic.brokerlib.avro.common.Event; import es.redmic.commandslib.exceptions.ItemLockedException; import es.redmic.vesselslib.events.vesseltracking.common.VesselTrackingEvent; import es.redmic.vesselslib.events.vesseltracking.create.CreateVesselTrackingEvent; import es.redmic.vesselslib.events.vesseltracking.create.VesselTrackingCreatedEvent; Loading @@ -23,16 +24,6 @@ import es.redmic.vesselslib.events.vesseltracking.update.VesselTrackingUpdatedEv @RunWith(MockitoJUnitRunner.class) public class ApplyEventTest extends AggregateBaseTest { @Test public void applyCreateVesselTrackingEvent_ChangeAggrefateState_IfProcessIsOk() { CreateVesselTrackingEvent evt = getCreateVesselTrackingEvent(); agg.apply(evt); checkCreateOrUpdateState(evt); } @Test public void applyVesselTrackingCreatedEvent_ChangeAggrefateState_IfProcessIsOk() { Loading @@ -40,17 +31,7 @@ public class ApplyEventTest extends AggregateBaseTest { agg.apply(evt); checkCreateOrUpdateState(evt); } @Test public void applyUpdateVesselTrackingEvent_ChangeAggregateState_IfProcessIsOk() { UpdateVesselTrackingEvent evt = getUpdateVesselTrackingEvent(); agg.apply(evt); checkCreateOrUpdateState(evt); checkCreatedOrUpdatedState(evt); } @Test Loading @@ -60,17 +41,7 @@ public class ApplyEventTest extends AggregateBaseTest { agg.apply(evt); checkCreateOrUpdateState(evt); } @Test public void applyDeleteVesselTrackingEvent_ChangeAggregateState_IfProcessIsOk() { DeleteVesselTrackingEvent evt = getDeleteVesselTrackingEvent(); agg.apply(evt); checkDeleteState(evt); checkCreatedOrUpdatedState(evt); } @Test Loading @@ -84,59 +55,49 @@ public class ApplyEventTest extends AggregateBaseTest { } @Test public void loadFromHistory_ChangeAggregateStateToCreate_IfEventIsCreate() { public void loadFromHistory_ChangeAggregateStateToCreated_IfEventIsCreated() { CreateVesselTrackingEvent evt = getCreateVesselTrackingEvent(); VesselTrackingCreatedEvent evt = getVesselTrackingCreatedEvent(); agg.loadFromHistory(evt); checkCreateOrUpdateState(evt); checkCreatedOrUpdatedState(evt); } @Test public void loadFromHistory_ChangeAggregateStateToUpdate_IfEventIsUpdate() { @Test(expected = ItemLockedException.class) public void loadFromHistory_ThrowItemLockedException_IfEventIsCreate() { UpdateVesselTrackingEvent evt = getUpdateVesselTrackingEvent(); CreateVesselTrackingEvent evt = getCreateVesselTrackingEvent(); agg.loadFromHistory(evt); checkCreateOrUpdateState(evt); } @Test public void loadFromHistory_ChangeAggregateStateToDelete_IfEventIsDelete() { public void loadFromHistory_ChangeAggregateStateToUpdated_IfEventIsUpdated() { DeleteVesselTrackingEvent evt = getDeleteVesselTrackingEvent(); VesselTrackingUpdatedEvent evt = getVesselTrackingUpdatedEvent(); agg.loadFromHistory(evt); checkDeleteState(evt); checkCreatedOrUpdatedState(evt); } @Test public void loadFromHistory_ChangeAggregateStateToDelete_IfLastEventIsDelete() { List<Event> history = new ArrayList<>(); history.add(getCreateVesselTrackingEvent()); history.add(getUpdateVesselTrackingEvent()); history.add(getDeleteVesselTrackingEvent()); history.add(getDeleteVesselTrackingEvent()); @Test(expected = ItemLockedException.class) public void loadFromHistory_ThrowItemLockedException_IfEventIsUpdate() { agg.loadFromHistory(history); UpdateVesselTrackingEvent evt = getUpdateVesselTrackingEvent(); checkDeleteState((DeleteVesselTrackingEvent) history.get(3)); agg.loadFromHistory(evt); } @Test public void loadFromHistory_ChangeAggregateStateToDeleted_IfEventIsDelete() { public void loadFromHistory_ChangeAggregateStateToDeleted_IfEventIsDeleted() { List<Event> history = new ArrayList<>(); history.add(getCreateVesselTrackingEvent()); history.add(getUpdateVesselTrackingEvent()); history.add(getDeleteVesselTrackingEvent()); history.add(getVesselTrackingCreatedEvent()); history.add(getVesselTrackingUpdatedEvent()); history.add(getVesselTrackingDeletedEvent()); history.add(getVesselTrackingDeletedEvent()); Loading @@ -145,18 +106,19 @@ public class ApplyEventTest extends AggregateBaseTest { checkDeletedState((VesselTrackingDeletedEvent) history.get(3)); } private void checkCreateOrUpdateState(VesselTrackingEvent evt) { @Test(expected = ItemLockedException.class) public void loadFromHistory_ThrowItemLockedException_IfEventIsDelete() { assertEquals(agg.getVersion(), evt.getVersion()); assertEquals(agg.getAggregateId(), evt.getAggregateId()); assertEquals(agg.getVesselTracking(), evt.getVesselTracking()); assertFalse(agg.isDeleted()); DeleteVesselTrackingEvent evt = getDeleteVesselTrackingEvent(); agg.loadFromHistory(evt); } private void checkDeleteState(DeleteVesselTrackingEvent evt) { private void checkCreatedOrUpdatedState(VesselTrackingEvent evt) { assertEquals(agg.getVersion(), evt.getVersion()); assertEquals(agg.getAggregateId(), evt.getAggregateId()); assertEquals(agg.getVesselTracking(), evt.getVesselTracking()); assertFalse(agg.isDeleted()); } Loading Loading
vessels-commands/src/main/java/es/redmic/vesselscommands/aggregate/VesselAggregate.java +18 −28 Original line number Diff line number Diff line Loading @@ -119,60 +119,43 @@ public class VesselAggregate extends Aggregate { } @Override public void loadFromHistory(Event history) { public void loadFromHistory(Event event) { logger.debug("Cargando último estado del vessel ", history.getAggregateId()); logger.debug("Cargando último estado del vessel ", event.getAggregateId()); String eventType = history.getType(); check(event); String eventType = event.getType(); switch (eventType) { case "CREATE": logger.debug("En fase de creación"); apply((VesselEvent) history); break; case "CREATED": logger.debug("Item creado"); apply((VesselEvent) history); break; case "UPDATE": logger.debug("En fase de modificación"); apply((VesselEvent) history); apply((VesselEvent) event); break; case "UPDATED": logger.debug("Item modificado"); apply((VesselEvent) history); apply((VesselEvent) event); break; case "DELETED": logger.debug("Item borrado"); apply((VesselDeletedEvent) history); apply((VesselDeletedEvent) event); break; // CANCELLED case "CREATE_CANCELLED": logger.debug("Compensación por creación fallida"); apply((CreateVesselCancelledEvent) history); apply((CreateVesselCancelledEvent) event); break; case "UPDATE_CANCELLED": case "DELETE_CANCELLED": logger.debug("Compensación por edición/borrado fallido"); apply((VesselEvent) history); break; case "UPDATE_VESSELTYPE": logger.debug("En fase de edición parcial de veseltype en vessel"); apply(history); apply((VesselEvent) event); break; default: super._loadFromHistory(history); logger.debug("Evento no manejado ", event.getType()); break; } } public void apply(UpdateVesselTypeInVesselEvent event) { if (this.vessel == null) this.vessel = new VesselDTO(); this.vessel.setType(event.getVesselType()); super.apply(event); } public void apply(CreateVesselCancelledEvent event) { this.deleted = true; apply(event); Loading @@ -183,6 +166,13 @@ public class VesselAggregate extends Aggregate { super.apply(event); } public void apply(UpdateVesselTypeInVesselEvent event) { if (this.vessel == null) this.vessel = new VesselDTO(); this.vessel.setType(event.getVesselType()); super.apply(event); } public void apply(VesselEvent event) { this.vessel = event.getVessel(); super.apply(event); Loading
vessels-commands/src/main/java/es/redmic/vesselscommands/aggregate/VesselTrackingAggregate.java +20 −32 Original line number Diff line number Diff line Loading @@ -115,55 +115,53 @@ public class VesselTrackingAggregate extends Aggregate { } @Override public void loadFromHistory(Event history) { public void loadFromHistory(Event event) { logger.debug("Cargando último estado del vesselTracking ", history.getAggregateId()); logger.debug("Cargando último estado del vesselTracking ", event.getAggregateId()); String eventType = history.getType(); check(event); // TODO: Si se trata de un evento no final, controlar el error. String eventType = event.getType(); switch (eventType) { case "CREATE": logger.debug("En fase de creación"); apply((VesselTrackingEvent) history); break; case "CREATED": logger.debug("Item creado"); apply((VesselTrackingEvent) history); break; case "UPDATE": logger.debug("En fase de modificación"); apply((VesselTrackingEvent) history); apply((VesselTrackingEvent) event); break; case "UPDATED": logger.debug("Item modificado"); apply((VesselTrackingEvent) history); apply((VesselTrackingEvent) event); break; case "DELETED": logger.debug("Item borrado"); apply((VesselTrackingDeletedEvent) history); apply((VesselTrackingDeletedEvent) event); break; // CANCELLED case "CREATE_CANCELLED": logger.debug("Compensación por creación fallida"); apply(history); apply(event); break; case "UPDATE_CANCELLED": case "DELETE_CANCELLED": logger.debug("Compensación por edición/borrado fallido"); apply((VesselTrackingEvent) history); break; case "UPDATE_VESSELTYPE": logger.debug("En fase de edición parcial de veseltype en vessel"); apply(history); apply((VesselTrackingEvent) event); break; default: super._loadFromHistory(history); logger.debug("Evento no manejado ", event.getType()); break; } } public void apply(CreateVesselTrackingCancelledEvent event) { this.deleted = true; apply(event); } public void apply(VesselTrackingDeletedEvent event) { this.deleted = true; super.apply(event); } public void apply(UpdateVesselInVesselTrackingEvent event) { if (this.vesselTracking == null) this.vesselTracking = new VesselTrackingDTO(); Loading @@ -177,16 +175,6 @@ public class VesselTrackingAggregate extends Aggregate { super.apply(event); } public void apply(CreateVesselTrackingCancelledEvent event) { this.deleted = true; apply(event); } public void apply(VesselTrackingDeletedEvent event) { this.deleted = true; super.apply(event); } public void apply(VesselTrackingEvent event) { this.vesselTracking = event.getVesselTracking(); super.apply(event); Loading
vessels-commands/src/main/java/es/redmic/vesselscommands/aggregate/VesselTypeAggregate.java +11 −17 Original line number Diff line number Diff line Loading @@ -99,45 +99,39 @@ public class VesselTypeAggregate extends Aggregate { } @Override public void loadFromHistory(Event history) { public void loadFromHistory(Event event) { logger.debug("Cargando último estado del vessel type ", history.getAggregateId()); logger.debug("Cargando último estado del vessel type ", event.getAggregateId()); String eventType = history.getType(); check(event); String eventType = event.getType(); switch (eventType) { case "CREATE": logger.debug("En fase de creación"); apply((VesselTypeEvent) history); break; case "CREATED": logger.debug("Item creado"); apply((VesselTypeEvent) history); break; case "UPDATE": logger.debug("En fase de modificación"); apply((VesselTypeEvent) history); apply((VesselTypeEvent) event); break; case "UPDATED": logger.debug("Item modificado"); apply((VesselTypeEvent) history); apply((VesselTypeEvent) event); break; case "DELETED": logger.debug("Item borrado"); apply((VesselTypeDeletedEvent) history); apply((VesselTypeDeletedEvent) event); break; // CANCELLED case "CREATE_CANCELLED": logger.debug("Compensación por creación fallida"); apply((CreateVesselTypeCancelledEvent) history); apply((CreateVesselTypeCancelledEvent) event); break; case "UPDATE_CANCELLED": case "DELETE_CANCELLED": logger.debug("Compensación por edición/borrado fallido"); apply((VesselTypeEvent) history); apply((VesselTypeEvent) event); break; default: super._loadFromHistory(history); logger.debug("Evento no manejado ", event.getType()); } } Loading
vessels-commands/src/test/java/es/redmic/test/vesselscommands/unit/aggregate/vessel/ApplyEventTest.java +27 −65 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import es.redmic.brokerlib.avro.common.Event; import es.redmic.commandslib.exceptions.ItemLockedException; import es.redmic.vesselslib.events.vessel.common.VesselEvent; import es.redmic.vesselslib.events.vessel.create.CreateVesselEvent; import es.redmic.vesselslib.events.vessel.create.VesselCreatedEvent; Loading @@ -23,16 +24,6 @@ import es.redmic.vesselslib.events.vessel.update.VesselUpdatedEvent; @RunWith(MockitoJUnitRunner.class) public class ApplyEventTest extends AggregateBaseTest { @Test public void applyCreateVesselEvent_ChangeAggrefateState_IfProcessIsOk() { CreateVesselEvent evt = getCreateVesselEvent(); agg.apply(evt); checkCreateOrUpdateState(evt); } @Test public void applyVesselCreatedEvent_ChangeAggrefateState_IfProcessIsOk() { Loading @@ -40,17 +31,7 @@ public class ApplyEventTest extends AggregateBaseTest { agg.apply(evt); checkCreateOrUpdateState(evt); } @Test public void applyUpdateVesselEvent_ChangeAggregateState_IfProcessIsOk() { UpdateVesselEvent evt = getUpdateVesselEvent(); agg.apply(evt); checkCreateOrUpdateState(evt); checkCreatedOrUpdatedState(evt); } @Test Loading @@ -60,17 +41,7 @@ public class ApplyEventTest extends AggregateBaseTest { agg.apply(evt); checkCreateOrUpdateState(evt); } @Test public void applyDeleteVesselEvent_ChangeAggregateState_IfProcessIsOk() { DeleteVesselEvent evt = getDeleteVesselEvent(); agg.apply(evt); checkDeleteState(evt); checkCreatedOrUpdatedState(evt); } @Test Loading @@ -84,59 +55,49 @@ public class ApplyEventTest extends AggregateBaseTest { } @Test public void loadFromHistory_ChangeAggregateStateToCreate_IfEventIsCreate() { public void loadFromHistory_ChangeAggregateStateToCreated_IfEventIsCreated() { CreateVesselEvent evt = getCreateVesselEvent(); VesselCreatedEvent evt = getVesselCreatedEvent(); agg.loadFromHistory(evt); checkCreateOrUpdateState(evt); checkCreatedOrUpdatedState(evt); } @Test public void loadFromHistory_ChangeAggregateStateToUpdate_IfEventIsUpdate() { @Test(expected = ItemLockedException.class) public void loadFromHistory_ThrowItemLockedException_IfEventIsCreate() { UpdateVesselEvent evt = getUpdateVesselEvent(); CreateVesselEvent evt = getCreateVesselEvent(); agg.loadFromHistory(evt); checkCreateOrUpdateState(evt); } @Test public void loadFromHistory_ChangeAggregateStateToDelete_IfEventIsDelete() { public void loadFromHistory_ChangeAggregateStateToUpdated_IfEventIsUpdated() { DeleteVesselEvent evt = getDeleteVesselEvent(); VesselUpdatedEvent evt = getVesselUpdatedEvent(); agg.loadFromHistory(evt); checkDeleteState(evt); checkCreatedOrUpdatedState(evt); } @Test public void loadFromHistory_ChangeAggregateStateToDelete_IfLastEventIsDelete() { List<Event> history = new ArrayList<>(); history.add(getCreateVesselEvent()); history.add(getUpdateVesselEvent()); history.add(getDeleteVesselEvent()); history.add(getDeleteVesselEvent()); @Test(expected = ItemLockedException.class) public void loadFromHistory_ThrowItemLockedException_IfEventIsUpdate() { agg.loadFromHistory(history); UpdateVesselEvent evt = getUpdateVesselEvent(); checkDeleteState((DeleteVesselEvent) history.get(3)); agg.loadFromHistory(evt); } @Test public void loadFromHistory_ChangeAggregateStateToDeleted_IfEventIsDelete() { public void loadFromHistory_ChangeAggregateStateToDeleted_IfEventIsDeleted() { List<Event> history = new ArrayList<>(); history.add(getCreateVesselEvent()); history.add(getUpdateVesselEvent()); history.add(getDeleteVesselEvent()); history.add(getVesselCreatedEvent()); history.add(getVesselUpdatedEvent()); history.add(getVesselDeletedEvent()); history.add(getVesselDeletedEvent()); Loading @@ -145,18 +106,19 @@ public class ApplyEventTest extends AggregateBaseTest { checkDeletedState((VesselDeletedEvent) history.get(3)); } private void checkCreateOrUpdateState(VesselEvent evt) { @Test(expected = ItemLockedException.class) public void loadFromHistory_ThrowItemLockedException_IfEventIsDelete() { assertEquals(agg.getVersion(), evt.getVersion()); assertEquals(agg.getAggregateId(), evt.getAggregateId()); assertEquals(agg.getVessel(), evt.getVessel()); assertFalse(agg.isDeleted()); DeleteVesselEvent evt = getDeleteVesselEvent(); agg.loadFromHistory(evt); } private void checkDeleteState(DeleteVesselEvent evt) { private void checkCreatedOrUpdatedState(VesselEvent evt) { assertEquals(agg.getVersion(), evt.getVersion()); assertEquals(agg.getAggregateId(), evt.getAggregateId()); assertEquals(agg.getVessel(), evt.getVessel()); assertFalse(agg.isDeleted()); } Loading
vessels-commands/src/test/java/es/redmic/test/vesselscommands/unit/aggregate/vesseltracking/ApplyEventTest.java +27 −65 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import es.redmic.brokerlib.avro.common.Event; import es.redmic.commandslib.exceptions.ItemLockedException; import es.redmic.vesselslib.events.vesseltracking.common.VesselTrackingEvent; import es.redmic.vesselslib.events.vesseltracking.create.CreateVesselTrackingEvent; import es.redmic.vesselslib.events.vesseltracking.create.VesselTrackingCreatedEvent; Loading @@ -23,16 +24,6 @@ import es.redmic.vesselslib.events.vesseltracking.update.VesselTrackingUpdatedEv @RunWith(MockitoJUnitRunner.class) public class ApplyEventTest extends AggregateBaseTest { @Test public void applyCreateVesselTrackingEvent_ChangeAggrefateState_IfProcessIsOk() { CreateVesselTrackingEvent evt = getCreateVesselTrackingEvent(); agg.apply(evt); checkCreateOrUpdateState(evt); } @Test public void applyVesselTrackingCreatedEvent_ChangeAggrefateState_IfProcessIsOk() { Loading @@ -40,17 +31,7 @@ public class ApplyEventTest extends AggregateBaseTest { agg.apply(evt); checkCreateOrUpdateState(evt); } @Test public void applyUpdateVesselTrackingEvent_ChangeAggregateState_IfProcessIsOk() { UpdateVesselTrackingEvent evt = getUpdateVesselTrackingEvent(); agg.apply(evt); checkCreateOrUpdateState(evt); checkCreatedOrUpdatedState(evt); } @Test Loading @@ -60,17 +41,7 @@ public class ApplyEventTest extends AggregateBaseTest { agg.apply(evt); checkCreateOrUpdateState(evt); } @Test public void applyDeleteVesselTrackingEvent_ChangeAggregateState_IfProcessIsOk() { DeleteVesselTrackingEvent evt = getDeleteVesselTrackingEvent(); agg.apply(evt); checkDeleteState(evt); checkCreatedOrUpdatedState(evt); } @Test Loading @@ -84,59 +55,49 @@ public class ApplyEventTest extends AggregateBaseTest { } @Test public void loadFromHistory_ChangeAggregateStateToCreate_IfEventIsCreate() { public void loadFromHistory_ChangeAggregateStateToCreated_IfEventIsCreated() { CreateVesselTrackingEvent evt = getCreateVesselTrackingEvent(); VesselTrackingCreatedEvent evt = getVesselTrackingCreatedEvent(); agg.loadFromHistory(evt); checkCreateOrUpdateState(evt); checkCreatedOrUpdatedState(evt); } @Test public void loadFromHistory_ChangeAggregateStateToUpdate_IfEventIsUpdate() { @Test(expected = ItemLockedException.class) public void loadFromHistory_ThrowItemLockedException_IfEventIsCreate() { UpdateVesselTrackingEvent evt = getUpdateVesselTrackingEvent(); CreateVesselTrackingEvent evt = getCreateVesselTrackingEvent(); agg.loadFromHistory(evt); checkCreateOrUpdateState(evt); } @Test public void loadFromHistory_ChangeAggregateStateToDelete_IfEventIsDelete() { public void loadFromHistory_ChangeAggregateStateToUpdated_IfEventIsUpdated() { DeleteVesselTrackingEvent evt = getDeleteVesselTrackingEvent(); VesselTrackingUpdatedEvent evt = getVesselTrackingUpdatedEvent(); agg.loadFromHistory(evt); checkDeleteState(evt); checkCreatedOrUpdatedState(evt); } @Test public void loadFromHistory_ChangeAggregateStateToDelete_IfLastEventIsDelete() { List<Event> history = new ArrayList<>(); history.add(getCreateVesselTrackingEvent()); history.add(getUpdateVesselTrackingEvent()); history.add(getDeleteVesselTrackingEvent()); history.add(getDeleteVesselTrackingEvent()); @Test(expected = ItemLockedException.class) public void loadFromHistory_ThrowItemLockedException_IfEventIsUpdate() { agg.loadFromHistory(history); UpdateVesselTrackingEvent evt = getUpdateVesselTrackingEvent(); checkDeleteState((DeleteVesselTrackingEvent) history.get(3)); agg.loadFromHistory(evt); } @Test public void loadFromHistory_ChangeAggregateStateToDeleted_IfEventIsDelete() { public void loadFromHistory_ChangeAggregateStateToDeleted_IfEventIsDeleted() { List<Event> history = new ArrayList<>(); history.add(getCreateVesselTrackingEvent()); history.add(getUpdateVesselTrackingEvent()); history.add(getDeleteVesselTrackingEvent()); history.add(getVesselTrackingCreatedEvent()); history.add(getVesselTrackingUpdatedEvent()); history.add(getVesselTrackingDeletedEvent()); history.add(getVesselTrackingDeletedEvent()); Loading @@ -145,18 +106,19 @@ public class ApplyEventTest extends AggregateBaseTest { checkDeletedState((VesselTrackingDeletedEvent) history.get(3)); } private void checkCreateOrUpdateState(VesselTrackingEvent evt) { @Test(expected = ItemLockedException.class) public void loadFromHistory_ThrowItemLockedException_IfEventIsDelete() { assertEquals(agg.getVersion(), evt.getVersion()); assertEquals(agg.getAggregateId(), evt.getAggregateId()); assertEquals(agg.getVesselTracking(), evt.getVesselTracking()); assertFalse(agg.isDeleted()); DeleteVesselTrackingEvent evt = getDeleteVesselTrackingEvent(); agg.loadFromHistory(evt); } private void checkDeleteState(DeleteVesselTrackingEvent evt) { private void checkCreatedOrUpdatedState(VesselTrackingEvent evt) { assertEquals(agg.getVersion(), evt.getVersion()); assertEquals(agg.getAggregateId(), evt.getAggregateId()); assertEquals(agg.getVesselTracking(), evt.getVesselTracking()); assertFalse(agg.isDeleted()); } Loading