public void SimpleCQRSScenarioTest1() { var serviceCollection = new ServiceCollection(); var messageHandlerExecutionContext = new ServiceProviderMessageHandlerExecutionContext(serviceCollection); var changedName = string.Empty; var eventStore = new DictionaryEventStore(); var eventBus = new SimpleEventBus(new MessageJsonSerializer(), messageHandlerExecutionContext); var snapshotProvider = new SuppressedSnapshotProvider(); eventBus.MessageReceived += (s, e) => { if (e.Message is NameChangedEvent) { changedName = (e.Message as NameChangedEvent).Name; } }; var domainRepository = new EventSourcingDomainRepository(eventStore, eventBus, snapshotProvider); var id = Guid.NewGuid(); var model = new Employee(id); model.ChangeName("daxnet"); domainRepository.Save <Guid, Employee>(model); Assert.Equal("daxnet", changedName); }
public void SaveEventsTest1() { var aggregateRootId = Guid.NewGuid(); var employee = new Employee { Id = aggregateRootId }; var event1 = new NameChangedEvent("daxnet"); var event2 = new TitleChangedEvent("title"); var event3 = new RegisteredEvent(); event1.AttachTo(employee); event2.AttachTo(employee); event3.AttachTo(employee); var store = new DictionaryEventStore(); store.Save(new List <DomainEvent> { event1, event2, event3 }); var events = store.Load <Guid, IDomainEvent>(typeof(Employee).AssemblyQualifiedName, aggregateRootId); Assert.Equal(3, events.Count()); Assert.NotEqual(Guid.Empty, event1.Id); Assert.NotEqual(Guid.Empty, event2.Id); Assert.NotEqual(Guid.Empty, event3.Id); }
public void SimpleCQRSScenarioTest1() { var changedName = string.Empty; var eventStore = new DictionaryEventStore(); var eventBus = new EventBus(); eventBus.MessageReceived += (s, e) => { if (e.Message is NameChangedEvent) { changedName = (e.Message as NameChangedEvent).Name; } }; eventBus.Subscribe(); var domainRepository = new EventSourcingDomainRepository(eventStore, eventBus); var id = Guid.NewGuid(); var model = new Employee { Id = id }; model.ChangeName("daxnet"); domainRepository.Save <Guid, Employee>(model); Assert.Equal("daxnet", changedName); }