static void Main(string[] args) { Console.WriteLine("Please input your orders like '10 IMG'"); Console.WriteLine("Input 'OK' in a new line to complete"); List <string> orders = new List <string>(); string oneLine = Console.ReadLine(); while (oneLine.ToUpper() != "OK") { orders.Add(oneLine.ToUpper()); oneLine = Console.ReadLine(); } ClientOrder clientOrder = new ClientOrder(); foreach (var one in orders) { string[] strOrders = one.Split(' '); if (strOrders.Length < 2) { continue; } int posts = 0; int.TryParse(strOrders[0], out posts); if (posts > 0) { MediaOrder mediaOrder = new MediaOrder(strOrders[1].ToUpper(), posts); clientOrder.AddMediaOrder(mediaOrder); } } InitAllMediaBundleItem.Run(); FilledClientOrder filledClientOrder = ClientOrderCalculator.CalClientOrder(clientOrder); Console.WriteLine("\nThe result is......\n"); Console.WriteLine(filledClientOrder.GetResutlStr()); Console.ReadKey(); }
public void CalClientOrderTest() { InitAllMediaBundleItem.Run(); ClientOrder cli = new ClientOrder(); cli.AddMediaOrder(new MediaOrder("IMG", 28)); cli.AddMediaOrder(new MediaOrder("FLAC", 28)); cli.AddMediaOrder(new MediaOrder("VID", 28)); FilledClientOrder actual = ClientOrderCalculator.CalClientOrder(cli); Assert.IsTrue(actual.GetBundles(0).SequenceEqual(new List <int> { 3, 0 })); Assert.IsTrue(actual.GetBundles(1).SequenceEqual(new List <int> { 3, 0, 1 })); Assert.IsTrue(actual.GetBundles(2).SequenceEqual(new List <int> { 2, 2, 0 })); Assert.AreEqual(actual.GetList()[0].offset, 2); Assert.AreEqual(actual.GetList()[1].offset, 2); Assert.AreEqual(actual.GetList()[2].offset, 0); }