Example #1
0
    public void WhenInstantiated_ThenShouldBeOfCorrectType()
    {
        var controller = new OrderCommandController(_commandBrokerMoq.Object, _mapper);

        Assert.NotNull(controller);
        Assert.IsAssignableFrom <ControllerBase>(controller);
        Assert.IsType <OrderCommandController>(controller);
    }
Example #2
0
    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);
    }
Example #3
0
    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);
    }
Example #4
0
    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);
    }
Example #5
0
    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);
    }
Example #6
0
    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);
    }
Example #7
0
    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);
    }