public async Task <IActionResult> Delete(Guid id) { var deleteGreetingCommand = new RemoveShipCommand(new Id(id)); await _commandProcessor.SendAsync(deleteGreetingCommand); return(Ok()); }
public async Task When_removing_a_ship_registration() { //arrange using (var contextFactory = new FakeShipRegistryContextFactory(_options)) { var uow = contextFactory.Create(); var repository = new ShipRepositoryAsync(uow); var ship = new Ship(new Id(), new ShipName("Majestic"), ShipType.Container, new Capacity(50000), new Id()); await repository.AddAsync(ship); var commandProcessor = new FakeCommandProcessor(); var command = new RemoveShipCommand(ship.Id); var handler = new RemoveShipHandlerAsync(contextFactory, commandProcessor); //act await handler.HandleAsync(command); //assert var removedShip = await uow.Ships.SingleOrDefaultAsync(s => s.Id == ship.Id); Assert.That(removedShip, Is.Null); var domainEvent = commandProcessor.Messages.SingleOrDefault(m => m.Action == Action.Post); Assert.That(domainEvent, Is.Not.Null); var shipRemovedEvent = (ShipRemovedEvent)domainEvent.Message; Assert.That(shipRemovedEvent.ShipRemoved, Is.EqualTo(ship.Id)); } }