public void unassign_all_loction_when_formation_is_deleted() { // given var trainingId = Guid.NewGuid(); var locationId1 = Guid.NewGuid(); var locationId2 = Guid.NewGuid(); var sessionId1 = Guid.NewGuid(); var sessionId2 = Guid.NewGuid(); var sessionId3 = Guid.NewGuid(); var sessionId4 = Guid.NewGuid(); var sessionId5 = Guid.NewGuid(); var sessionId6 = Guid.NewGuid(); //var formateurId = Guid.NewGuid(); var dispatcher = new EventDispatcher(); var mockHandler = new MockHandler <LocationUnassigned, SessionDeleted, TrainingDeleted>(); dispatcher.Register(mockHandler); var eventStore = new FakeEventStore(); eventStore.Save(new LocationCreated(locationId1, 1, "Paris", "test", 5)); eventStore.Save(new LocationCreated(locationId2, 1, "Lyon", "test", 3)); eventStore.Save(new SessionPlanned(sessionId1, 1, trainingId, new DateTime(2017, 10, 21), 2, 2, locationId1, null)); eventStore.Save(new SessionPlanned(sessionId2, 2, trainingId, new DateTime(2017, 11, 21), 2, 2, locationId1, null)); eventStore.Save(new SessionPlanned(sessionId3, 3, trainingId, new DateTime(2017, 12, 21), 2, 2, locationId1, null)); eventStore.Save(new SessionPlanned(sessionId4, 1, trainingId, new DateTime(2017, 10, 21), 2, 2, locationId2, null)); eventStore.Save(new SessionPlanned(sessionId5, 2, trainingId, new DateTime(2017, 11, 21), 2, 2, locationId2, null)); eventStore.Save(new SessionPlanned(sessionId6, 3, trainingId, new DateTime(2017, 12, 21), 2, 2, locationId2, null)); eventStore.Save(new LocationAssigned(locationId1, 1, new DateTime(2017, 10, 21), 2)); eventStore.Save(new LocationAssigned(locationId1, 2, new DateTime(2017, 11, 21), 2)); eventStore.Save(new LocationAssigned(locationId1, 3, new DateTime(2017, 12, 21), 2)); eventStore.Save(new LocationAssigned(locationId2, 4, new DateTime(2017, 10, 21), 2)); eventStore.Save(new LocationAssigned(locationId2, 5, new DateTime(2017, 11, 21), 2)); eventStore.Save(new LocationAssigned(locationId2, 6, new DateTime(2017, 12, 21), 2)); eventStore.Save(new TrainingCreated(trainingId, 1, "Formation de test", 1, Color.Empty.ToArgb())); var eventBus = new EventBus(dispatcher, eventStore); var sessionQueries = new FakeSessionQueries(); sessionQueries.AddSession(trainingId, sessionId1, new DateTime(2017, 10, 21), 2, locationId1, null); sessionQueries.AddSession(trainingId, sessionId2, new DateTime(2017, 11, 21), 2, locationId1, null); sessionQueries.AddSession(trainingId, sessionId3, new DateTime(2017, 12, 21), 2, locationId1, null); sessionQueries.AddSession(trainingId, sessionId4, new DateTime(2017, 10, 21), 2, locationId2, null); sessionQueries.AddSession(trainingId, sessionId5, new DateTime(2017, 11, 21), 2, locationId2, null); sessionQueries.AddSession(trainingId, sessionId6, new DateTime(2017, 12, 21), 2, locationId2, null); // when new DeleteTraining(eventBus, sessionQueries).Execute(trainingId); // then mockHandler.AllEvents.OfType <SessionDeleted>().Should().HaveCount(6); mockHandler.AllEvents.OfType <LocationUnassigned>().Should().HaveCount(6); mockHandler.AllEvents.OfType <TrainingDeleted>().Should().HaveCount(1); }
public void unassign_all_trainer_when_training_is_deleted() { // given var trainingId = Guid.NewGuid(); var trainerId1 = Guid.NewGuid(); var trainerId2 = Guid.NewGuid(); var sessionId1 = Guid.NewGuid(); var sessionId2 = Guid.NewGuid(); var sessionId3 = Guid.NewGuid(); var sessionId4 = Guid.NewGuid(); var sessionId5 = Guid.NewGuid(); var sessionId6 = Guid.NewGuid(); var locationId = Guid.NewGuid(); var dispatcher = new EventDispatcher(); var mockHandler = new MockHandler <TrainerUnassigned, SessionDeleted, TrainingDeleted>(); dispatcher.Register(mockHandler); var eventStore = new FakeEventStore(); eventStore.Save(new TrainerCreated(trainerId1, 1, "BOUDOUX", "Aurelien", "*****@*****.**")); eventStore.Save(new TrainerCreated(trainerId2, 1, "Creutzfeldt", "Jacob", "*****@*****.**")); eventStore.Save(new SessionPlanned(sessionId1, 1, trainingId, new DateTime(2017, 10, 21), 2, 2, locationId, trainerId1)); eventStore.Save(new SessionPlanned(sessionId2, 2, trainingId, new DateTime(2017, 11, 21), 2, 2, locationId, trainerId1)); eventStore.Save(new SessionPlanned(sessionId3, 3, trainingId, new DateTime(2017, 12, 21), 2, 2, locationId, trainerId1)); eventStore.Save(new SessionPlanned(sessionId4, 1, trainingId, new DateTime(2017, 10, 21), 2, 2, locationId, trainerId2)); eventStore.Save(new SessionPlanned(sessionId5, 2, trainingId, new DateTime(2017, 11, 21), 2, 2, locationId, trainerId2)); eventStore.Save(new SessionPlanned(sessionId6, 3, trainingId, new DateTime(2017, 12, 21), 2, 2, locationId, trainerId2)); eventStore.Save(new TrainerAssigned(trainerId1, 1, new DateTime(2017, 10, 21), 2)); eventStore.Save(new TrainerAssigned(trainerId1, 2, new DateTime(2017, 11, 21), 2)); eventStore.Save(new TrainerAssigned(trainerId1, 3, new DateTime(2017, 12, 21), 2)); eventStore.Save(new TrainerAssigned(trainerId2, 4, new DateTime(2017, 10, 21), 2)); eventStore.Save(new TrainerAssigned(trainerId2, 5, new DateTime(2017, 11, 21), 2)); eventStore.Save(new TrainerAssigned(trainerId2, 6, new DateTime(2017, 12, 21), 2)); eventStore.Save(new TrainingCreated(trainingId, 1, "Formation de test", 1, Color.Empty.ToArgb())); var eventBus = new EventBus(dispatcher, eventStore); var sessionQueries = new FakeSessionQueries(); sessionQueries.AddSession(trainingId, sessionId1, new DateTime(2017, 10, 21), 2, null, trainerId1); sessionQueries.AddSession(trainingId, sessionId2, new DateTime(2017, 11, 21), 2, null, trainerId1); sessionQueries.AddSession(trainingId, sessionId3, new DateTime(2017, 12, 21), 2, null, trainerId1); sessionQueries.AddSession(trainingId, sessionId4, new DateTime(2017, 10, 21), 2, null, trainerId2); sessionQueries.AddSession(trainingId, sessionId5, new DateTime(2017, 11, 21), 2, null, trainerId2); sessionQueries.AddSession(trainingId, sessionId6, new DateTime(2017, 12, 21), 2, null, trainerId2); // when new DeleteTraining(eventBus, sessionQueries).Execute(trainingId); // then mockHandler.AllEvents.OfType <SessionDeleted>().Should().HaveCount(6); mockHandler.AllEvents.OfType <TrainerUnassigned>().Should().HaveCount(6); mockHandler.AllEvents.OfType <TrainingDeleted>().Should().HaveCount(1); }