public void WhenInstantiated_ThenShouldBeOfCorrectType() { var controller = new OrderCommandController(_commandBrokerMoq.Object, _mapper); Assert.NotNull(controller); Assert.IsAssignableFrom <ControllerBase>(controller); Assert.IsType <OrderCommandController>(controller); }
public async Task GivenWeAreUpdatingAnOrder_WhenOrderDoesNotExist_ThenShouldReturnNotFound() { _commandBrokerMoq.Setup(x => x.SendAsync(It.IsAny <UpdateOrder>())) .ReturnsAsync(new CommandResult <Order>(CommandOutcome.NotFound)); var controller = new OrderCommandController(_commandBrokerMoq.Object, _mapper); var actionResult = await controller.Update(Orders.Order1); var notFoundResult = actionResult as NotFoundResult; Assert.NotNull(actionResult); Assert.NotNull(notFoundResult); }
public async Task GivenWeAreUpdatingAnOrder_WhenWeEncounterAConcurrencyIssue_ThenShouldReturnConflict() { _commandBrokerMoq.Setup(x => x.SendAsync(It.IsAny <UpdateOrder>())) .ReturnsAsync(new CommandResult <Order>(CommandOutcome.Conflict)); var controller = new OrderCommandController(_commandBrokerMoq.Object, _mapper); var actionResult = await controller.Update(Orders.Order1); var conflictResult = actionResult as ConflictResult; Assert.NotNull(actionResult); Assert.NotNull(conflictResult); }
public async Task GivenWeAreCreatingAnOrder_WhenFailure_ThenShouldReturnError() { _commandBrokerMoq.Setup(x => x.SendAsync(It.IsAny <CreateOrder>())) .ReturnsAsync(new CommandResult <Order>(CommandOutcome.NotHandled)); var controller = new OrderCommandController(_commandBrokerMoq.Object, _mapper); var actionResult = await controller.Create(Orders.Order1); var statusCodeResult = actionResult as StatusCodeResult; Assert.NotNull(actionResult); Assert.NotNull(statusCodeResult); Assert.Equal(500, statusCodeResult !.StatusCode); }
public async Task GivenWeAreRemovingAnOrder_WhenSuccessful_ThenShouldReturnSuccess() { var orderId = Guid.NewGuid(); _commandBrokerMoq.Setup(x => x.SendAsync(It.IsAny <RemoveOrder>())) .ReturnsAsync(new CommandResult(CommandOutcome.Accepted)); var controller = new OrderCommandController(_commandBrokerMoq.Object, _mapper); var actionResult = await controller.Remove(orderId); var noContentResult = actionResult as NoContentResult; Assert.NotNull(actionResult); Assert.NotNull(noContentResult); }
public async Task GivenWeAreCreatingAnOrder_WhenSuccessful_ThenShouldProvideNewEntityWithPath() { var orderOut = _mapper.Map <Order>(Orders.Order1); _commandBrokerMoq.Setup(x => x.SendAsync(It.IsAny <CreateOrder>())) .ReturnsAsync(new CommandResult <Order>(CommandOutcome.Accepted, orderOut)); var controller = new OrderCommandController(_commandBrokerMoq.Object, _mapper); var actionResult = await controller.Create(Orders.Order1); var createdResult = actionResult as CreatedResult; Assert.NotNull(actionResult); Assert.NotNull(createdResult); Assert.Equal($"api/order/{orderOut.Id}", createdResult !.Location, true); }
public async Task GivenWeAreUpdatingAnOrder_WhenSuccessful_ThenUpdatedEntityShouldBeReturned() { var orderIn = Orders.Order1; var orderOut = _mapper.Map <Order>(orderIn); var controller = new OrderCommandController(_commandBrokerMoq.Object, _mapper); _commandBrokerMoq.Setup(x => x.SendAsync(It.IsAny <UpdateOrder>())) .ReturnsAsync(new CommandResult <Order>(CommandOutcome.Accepted, orderOut)); var actionResult = await controller.Update(orderIn); var okResult = Assert.IsType <OkObjectResult>(actionResult); Assert.NotNull(actionResult); Assert.NotNull(okResult); Assert.Equal(orderIn.Id, ((DTO.Write.Order)okResult.Value !).Id); }