public void IfStockIsTrackedAVariantWithEqualOrMoreThanTheRequestedAmountShouldBeAvailable(int remaining)
        {
            ProductVariant productVariant = new ProductVariantBuilder().Build();
            ProductStockChecker productStockChecker = new ProductStockCheckerBuilder().StockRemaining(remaining).Build();

            productStockChecker.CanOrderQuantity(productVariant, 2).CanOrder.Should().BeTrue();
        }
        public void IfStockIsTrackedAVariantWithLessThanTheRequestedAmountShouldNotBeAvailable()
        {
            ProductVariant productVariant = new ProductVariantBuilder().StockRemaining(1).Build();
            ProductStockChecker productStockChecker = new ProductStockCheckerBuilder().Build();

            productStockChecker.CanOrderQuantity(productVariant, 2).CanOrder.Should().BeFalse();
        }
        public void IfTheStockLevelIsBelowTheRequestedAmountItShouldBeReturned()
        {
            ProductVariant productVariant = new ProductVariantBuilder().Build();
            ProductStockChecker productStockChecker = new ProductStockCheckerBuilder().StockRemaining(1).Build();

            productStockChecker.CanOrderQuantity(productVariant, 2).StockRemaining.Should().Be(1);
        }
        public void UntrackedVariantsAreAvailableInAnyQuantity()
        {
            ProductVariant productVariant = new ProductVariantBuilder().DoNotTrackStock().Build();
            ProductStockChecker productStockChecker = new ProductStockCheckerBuilder().Build();

            productStockChecker.CanOrderQuantity(productVariant, 999).CanOrder.Should().BeTrue();
        }