public async Task UserCategoryCreateCommandTriggersEventToUpdateQueryDbWithCategory() { var name = "Test Category 1"; //Arrange var command = new UserCategoryCreateCommand(name); await _commandBus.Send(command); //Act var cats = await _categoryRepo.FindByAsync(q => q.Id == 1).ConfigureAwait(false); var cat = cats.FirstOrDefault(); //Act Assert.AreEqual(cat.Name, name); }
public async Task UserCategoryCreateCommandStoresEventInEventStore() { //Arrange var catName = "Test Category 345"; var command = new UserCategoryCreateCommand(catName); //Act await _commandBus.Send(command); var e = (await _eventRepository.FindByAsync(x => x.AggregateId == 1)).FirstOrDefault(); //Assert Assert.IsNotNull(e); var desrializedEvent = (UserCategoryCreatedEvent)DatabaseEventStorage.DeSerialize<UserCategoryCreatedEvent>(e.Data); Assert.IsNotNull(desrializedEvent); Assert.AreEqual(catName, desrializedEvent.Name); }
public async Task UserCategoryAggregateRootCanBeConstructedFromMemento() { // Arrange // No version - it's new var e1 = new UserCategoryCreateCommand("Category Name"); // Acting on Version 0 var e2 = new UserCategoryNameChangeCommand(1, "Category Name Changed Once", 0); // Acting on Version 1 var e3 = new UserCategoryNameChangeCommand(1, "Category Name Changed Twice", 1); // Acting on Version 2 var e4 = new UserCategoryNameChangeCommand(1, "Category Name Changed Three Times", 2); // Acting on Version 3 var e5 = new UserCategoryNameChangeCommand(1, "Category Name Changed Four Times", 3); // Act await _commandBus.Send<UserCategoryCreateCommand>(e1); await _commandBus.Send<UserCategoryNameChangeCommand>(e2); await _commandBus.Send<UserCategoryNameChangeCommand>(e3); await _commandBus.Send<UserCategoryNameChangeCommand>(e4); await _commandBus.Send<UserCategoryNameChangeCommand>(e5); // Assert var m = (await _mementoRepository.FindByAsync(x => x.Id == 1)).FirstOrDefault(); Assert.IsNotNull(m); var memento = DatabaseEventStorage.DeSerialize<UserCategoryMemento>(m.Data); UserCategory c = new UserCategory(); c.SetMemento(memento); Assert.AreEqual("Category Name Changed Three Times", c.Name); }
public async void UserCategoryCreateCommandStoresAggregateRootInEventStore() { //Arrange var catName = "Test Category 345"; var command = new UserCategoryCreateCommand(catName); //Act await _commandBus.Send(command); var agg = (await _aggregateRepository.FindByAsync(x => x.Id == 1)).FirstOrDefault(); //Assert Assert.IsNotNull(agg); Assert.AreEqual(0, agg.Version); }