public void WhenInstantiated_ThenShouldBeOfCorrectType()
    {
        var controller = new OrderQueryController(_queryBrokerMoq.Object);

        Assert.NotNull(controller);
        Assert.IsAssignableFrom <ControllerBase>(controller);
        Assert.IsType <OrderQueryController>(controller);
    }
    public async Task WhenRetrievingAnOrderById_ThenShouldReturnOrder()
    {
        _queryBrokerMoq.Setup(x => x.SendAsync(It.IsAny <GetOrder>()))
        .ReturnsAsync(_mapper.Map <Order>(Orders.Order1));
        var controller = new OrderQueryController(_queryBrokerMoq.Object);

        var actionResult = await controller.GetOrder(Guid.NewGuid());

        var okResult = Assert.IsType <OkObjectResult>(actionResult);
        var value    = (OrderView)okResult.Value !;

        Assert.Equal(OrderViews.Order1.Id, value.Id);
    }
    public async Task WhenRetrievingAllOrdersForACustomer_ThenAllOrdersShouldBeReturned()
    {
        _queryBrokerMoq.Setup(x => x.SendAsync(It.IsAny <GetOrdersByCustomer>()))
        .ReturnsAsync(new List <Order>
        {
            _mapper.Map <Order>(Orders.Order1),
            _mapper.Map <Order>(Orders.Order2)
        });
        var controller = new OrderQueryController(_queryBrokerMoq.Object);

        var actionResult = await controller.GetOrders(Guid.NewGuid());

        var okResult = Assert.IsType <OkObjectResult>(actionResult);
        var value    = (IEnumerable <OrderView>)okResult.Value !;

        Assert.Collection(value,
                          x => Assert.Equal(OrderViews.Order1.Id, x.Id),
                          x => Assert.Equal(OrderViews.Order2.Id, x.Id));
    }