public void Should_correctly_CallBack_after_Consecutive_Buys() { //Given var fruits = new Stock(new List <Product> { new Product("apples", 10) }); //When int testQuantity = 0; Product testProduct = null; void TestMethod(Product product, int quantity) { testProduct = product; testQuantity = quantity; } fruits.AddCallback(TestMethod); fruits.Buy(1, "apples"); fruits.Buy(1, "apples"); fruits.Buy(4, "apples"); //Then Assert.Equal(4, testQuantity); }
public void Test_CallBack_Final_Check() { //Given var fruits = new Stock(new List <Product> { new Product("apples", 10) }); //When int testQuantity = 0; Product testProduct = null; void TestMethod(Product product, int quantity) { testProduct = product; testQuantity = quantity; } fruits.AddCallback(TestMethod); fruits.Buy(1, "apples"); fruits.Buy(1, "apples"); fruits.Buy(4, "apples"); fruits.Buy(1, "apples"); //Then Assert.Equal(4, testQuantity); }
public void Should_CallBack_after_Removing_1_element_From_10_Products() { //Given var apples = new Product("apples", 10); var fruits = new Stock(new List <Product> { apples }); //When int testQuantity = 0; Product testProduct = null; void TestMethod(Product product, int quantity) { testProduct = product; testQuantity = quantity; } fruits.AddCallback(TestMethod); fruits.Buy(1, "apples"); //Then Assert.NotNull(testProduct); Assert.Equal(apples.Name, testProduct.Name); Assert.Equal(9, testQuantity); }