public static List <object[]> GetTestProducts() { // List of test args - list of products to calculate the discount for, expected discount amount, // and expected list of products affected or involved in the discount var result = new List <object[]>() { // Empty basket, total discount should be zero new object[] { new Product[0], 0, new Product[0] }, // Three products, total discount should be sum of their prices, no discount here new object[] { new[] { ProductHelper.GetBread(), ProductHelper.GetButter(), ProductHelper.GetMilk() }, 0m, new Product[0] } }; var products = new[] { ProductHelper.GetBread(), ProductHelper.GetButter(), ProductHelper.GetButter(), ProductHelper.GetButter() }; result.Add(new object[] { products, 0.5m, new[] { products[0], products[1], products[2] } }); products = new [] { ProductHelper.GetBread(), ProductHelper.GetButter(), ProductHelper.GetButter(), ProductHelper.GetButter(), ProductHelper.GetBread(), ProductHelper.GetButter(), ProductHelper.GetButter(), ProductHelper.GetButter(), ProductHelper.GetButter() }; result.Add(new object[] { products, 1m, new[] { products[0], products[1], products[2], products[3], products[4], products[5] } }); return(result); }