Esempio n. 1
0
        public void Should_ThrowException_When_InputIsNullOrEmpty(string input)
        {
            // Arrange
            var productParser = new ProductParser();

            // Act & Assert
            Assert.Throws <ArgumentException>(() => productParser.TryParse(input, out Product _));
        }
Esempio n. 2
0
        public void ShouldNot_ParseProduct_When_BadProductInput(string input)
        {
            // Arrange
            var productParser = new ProductParser();

            // Act
            var result = productParser.TryParse(input, out Product product);

            // Assert
            Assert.False(result);
            Assert.Null(product);
        }
Esempio n. 3
0
        public void Should_CalculateTaxCorrectly(string input, decimal expectedTax)
        {
            using (new CultureOverride(CultureInfo.InvariantCulture))
            {
                // Arrange
                var taxManager    = TaxManager.Instance;
                var productParser = new ProductParser();
                productParser.TryParse(input, out Product product);

                // Act
                var tax = taxManager.CalculateTax(product);

                // Assert
                Assert.Equal(expectedTax, tax);
            }
        }
Esempio n. 4
0
        public void Should_ParseProductCorrectly(string input, ProductOrigin expectedOrigin, string expectedDescription, decimal expectedPrice, int expectedQuantity)
        {
            using (new CultureOverride(CultureInfo.InvariantCulture))
            {
                // Arrange
                var productParser = new ProductParser();

                // Act
                var result = productParser.TryParse(input, out Product product);

                // Assert
                Assert.True(result);
                Assert.Equal(expectedOrigin, product.Origin);
                Assert.Equal(expectedDescription, product.Description);
                Assert.Equal(expectedQuantity, product.Quantity);
                Assert.Equal(expectedPrice, product.Price);
                Assert.Equal(expectedPrice * expectedQuantity, product.Amount);
            }
        }