public void ArchiveArticle_FailFor_ArticleInActiveOrders() { //arrange var command = new ArchiveArticle { Id = Product2InteriorDoor.Id }; var handler = new ArchiveArticleHandler(EntityRepository, InventoryRepo, EventTransmitter); //assert () => act var ex = Assert.ThrowsAsync <DomainException>(async() => await handler.HandleAsync(command)); Assert.That(ex.Message, Is.EqualTo(ArchivingArticleStillInOrders(Product2InteriorDoor, 1))); Assert.That(GetRecordedEvents <DomainEvent <Article> >(), Is.Empty); }
public async Task ArchiveArticle_Success() { //arrange var command = new ArchiveArticle { Id = ArticleToArchive.Id, InitiatorId = GlobalAdmin.Id }; var handler = new ArchiveArticleHandler(EntityRepository, InventoryRepo, EventTransmitter); //act await handler.HandleAsync(command); //assert Assert.That(CallsTo(EntityRepository, nameof(EntityRepository.RemoveAsync)), Is.EqualTo(1)); var events = GetRecordedEvents <DomainEvent <Article> >(); Assert.That(events.Count, Is.EqualTo(1)); Assert.That(events[0].Entity, Is.EqualTo(ArticleToArchive)); Assert.That(events[0].Trigger, Is.EqualTo(Trigger.Removed)); Assert.That(events[0].RaisedBy, Is.EqualTo(command.InitiatorId)); }