public async Task AddProductAsync_ShouldFail_WhenCartIsNull()
        {
            // Arrange
            _fixture.Behaviors.Add(new OmitOnRecursionBehavior());

            var quantity          = _fixture.Create <int>();
            var cart              = _fixture.Create <Cart>();
            var product           = _fixture.Create <Product>();
            var expectedException = new KeyNotFoundException($"{typeof(Cart)} with id {cart.Id} was not found");

            _productRepository.GetAsync(product.Id).Returns(product);

            // Act
            var result = await Assert.ThrowsAsync <KeyNotFoundException>(async() => await _sut.AddProductAsync(cart.Id, product.Id, quantity));

            // Assert
            Assert.Equal(expectedException.Message, result.Message);
        }