public async Task ArchiveUser_Success() { //arrange var command = new ArchiveUser { Id = UserToArchive.Id, InitiatorId = GlobalAdmin.Id }; var handler = new ArchiveUserHandler(EntityRepository, EventTransmitter); //act await handler.HandleAsync(command); //assert var ids = GetRecordedIds(EntityRepository, nameof(EntityRepository.RemoveAsync)); Assert.That(ids.Count, Is.EqualTo(1)); Assert.That(ids[0], Is.EqualTo(command.Id)); var events = GetRecordedEvents <DomainEvent <User> >(); Assert.That(events.Count, Is.EqualTo(1)); Assert.That(events[0].Trigger, Is.EqualTo(Trigger.Removed)); Assert.That(events[0].Entity, Is.EqualTo(UserToArchive)); Assert.That(events[0].RaisedBy, Is.EqualTo(command.InitiatorId)); }
public void ArchiveUser_FailFor_UserBeingAssignedAsShopManager() { //arrange var command = new ArchiveUser { Id = ManagerOfProductAssemblyShop.Id, InitiatorId = GlobalAdmin.Id }; var handler = new ArchiveUserHandler(EntityRepository, EventTransmitter); //assert () => act var ex = Assert.ThrowsAsync <DomainException>(async() => await handler.HandleAsync(command)); Assert.That(ex.Message, Is.EqualTo(ArchivingShopManager(ManagerOfProductAssemblyShop))); Assert.That(GetRecordedEvents <DomainEvent <User> >(), Is.Empty); }