Ejemplo n.º 1
0
    public void WhenInstantiated_ThenShouldBeOfCorrectType()
    {
        var controller = new CustomerCommandController(_commandBrokerMoq.Object, _mapper);

        Assert.IsAssignableFrom <ControllerBase>(controller);
        Assert.IsType <CustomerCommandController>(controller);
    }
Ejemplo n.º 2
0
    public async Task GivenWeAreUpdatingACustomer_WhenCustomerDoesNotExist_ThenShouldReturnNotFound()
    {
        var controller = new CustomerCommandController(_commandBrokerMoq.Object, _mapper);

        _commandBrokerMoq.Setup(x => x.SendAsync(It.IsAny <UpdateCustomer>()))
        .ReturnsAsync(new CommandResult <Customer>(CommandOutcome.NotFound));

        var actionResult = await controller.Update(Customers.Customer2);

        var notFoundResult = actionResult as NotFoundResult;

        Assert.NotNull(actionResult);
        Assert.NotNull(notFoundResult);
    }
Ejemplo n.º 3
0
    public async Task GivenWeAreUpdatingACustomer_WhenWeEncounterAConcurrencyIssue_ThenShouldReturnConflict()
    {
        var controller = new CustomerCommandController(_commandBrokerMoq.Object, _mapper);

        _commandBrokerMoq.Setup(x => x.SendAsync(It.IsAny <UpdateCustomer>()))
        .ReturnsAsync(new CommandResult <Customer>(CommandOutcome.Conflict));

        var actionResult = await controller.Update(Customers.Customer2);

        var conflictResult = actionResult as ConflictResult;

        Assert.NotNull(actionResult);
        Assert.NotNull(conflictResult);
    }
Ejemplo n.º 4
0
    public async Task GivenWeAreCreatingACustomer_WhenFailure_ThenShouldReturnError()
    {
        _commandBrokerMoq.Setup(x => x.SendAsync(It.IsAny <CreateCustomer>()))
        .ReturnsAsync(new CommandResult <Customer>(CommandOutcome.NotHandled));

        var controller = new CustomerCommandController(_commandBrokerMoq.Object, _mapper);

        var actionResult = await controller.Create(Customers.Customer1);

        var statusCodeResult = actionResult as StatusCodeResult;

        Assert.NotNull(actionResult);
        Assert.NotNull(statusCodeResult);
        Assert.Equal(500, statusCodeResult !.StatusCode);
    }
Ejemplo n.º 5
0
    public async Task GivenWeAreRemovingACustomer_WhenSuccessful_ThenShouldReturnSuccess()
    {
        var customerId = Guid.NewGuid();
        var controller = new CustomerCommandController(_commandBrokerMoq.Object, _mapper);

        _commandBrokerMoq.Setup(x => x.SendAsync(It.IsAny <RemoveCustomer>()))
        .ReturnsAsync(new CommandResult <Customer>(CommandOutcome.Accepted));

        var actionResult = await controller.Remove(customerId);

        var noContentResult = actionResult as NoContentResult;

        Assert.NotNull(actionResult);
        Assert.NotNull(noContentResult);
    }
Ejemplo n.º 6
0
    public async Task GivenWeAreCreatingACustomer_WhenSuccessful_ThenShouldProvideNewEntityWithPath()
    {
        var customerOut = _mapper.Map <Customer>(Customers.Customer1);

        _commandBrokerMoq.Setup(x => x.SendAsync(It.IsAny <CreateCustomer>()))
        .ReturnsAsync(new CommandResult <Customer>(CommandOutcome.Accepted, customerOut));

        var controller = new CustomerCommandController(_commandBrokerMoq.Object, _mapper);

        var actionResult = await controller.Create(Customers.Customer1);

        var createdResult = actionResult as CreatedResult;

        Assert.NotNull(actionResult);
        Assert.NotNull(createdResult);
        Assert.Equal($"api/customer/{customerOut.Id}", createdResult !.Location, true);
    }
Ejemplo n.º 7
0
    public async Task GivenWeAreUpdatingACustomer_WhenSuccessful_ThenUpdatedEntityShouldBeReturned()
    {
        var customerIn  = Customers.Customer2;
        var customerOut = _mapper.Map <Customer>(Customers.Customer2);

        var controller = new CustomerCommandController(_commandBrokerMoq.Object, _mapper);

        _commandBrokerMoq.Setup(x => x.SendAsync(It.IsAny <UpdateCustomer>()))
        .ReturnsAsync(new CommandResult <Customer>(CommandOutcome.Accepted, customerOut));

        var actionResult = await controller.Update(customerIn);

        var objectResult = actionResult as OkObjectResult;

        Assert.NotNull(actionResult);
        Assert.NotNull(objectResult);
        Assert.Equal(customerIn.Id, ((DTO.Write.Customer)objectResult !.Value !).Id);
    }