protected override bool Run() { //Initialize testcases using in TDataset int n = listTDataset.Count; List<string> TcasesIn = new List<string>(); for (int i = 0; i < n; i++) { string TCaseName = listTDataset[i].TestCase; bool isExist = false; foreach (var item in TcasesIn) { if (item.Equals(TCaseName)) { isExist = true; break; } } if (!isExist) { TcasesIn.Add(TCaseName); } } //Generate TestDatas for each testcase using foreach (string item in TcasesIn) { List<TestDataset> currentList = new List<TestDataset>(); List<string> listvalues = new List<string>(); TestCase inTCase = getTestCase(item); List<string> listParams = util.getListValueFromString(inTCase.Parameters); List<string> lines = new List<string>(); for (int i = 0; i < n; i++) { if (listTDataset[i].TestCase.Equals(item)) currentList.Add(listTDataset[i]); } if (currentList.Count != listParams.Count) { Error.Write("The number of arguments input for TCase="+item+" isnot valid. Do you want to continue? (y/n)"); string ans = In.ReadLine(); if (ans.Equals("n") || ans.Equals("N")) { return false; } else { continue; } } else { foreach (string str in listParams) { bool isValidParam = false; for (int i = 0; i < currentList.Count; i++) { if (currentList[i].Parameter.Equals(str)) { string line = str + ":" + currentList[i].Values; lines.Add(line); isValidParam = true; } } if (!isValidParam) { Error.Write("The parameter " + str + " isnot exist in TCase =" + inTCase.Name+ " isnot valid. Do you want to continue? (y/n)"); string ans = In.ReadLine(); if (ans.Equals("n") || ans.Equals("N")) { return false; } } } if (lines.Count == currentList.Count) { pict Pict = new pict(); listvalues = Pict.Generate(lines); GenerateTestDatas(listvalues, inTCase); } } } return true; }
protected override bool Run() { string input; do { do { Out.WriteLine("///////////////////////////////////////////////////////////////////////////////////////////////"); Out.WriteLine("/////////////////////////////////////TESTCASE//////////////////////////////////////////////////"); Out.WriteLine("///////////////////////////////////////////////////////////////////////////////////////////////"); Out.WriteLine("Name :Parameters "); foreach (TestCase item in listTCase) { Out.WriteLine(item.Name + ":" + item.Parameters); Out.WriteLine(); } Out.WriteLine("///////////////////////////////////////////////////////////////////////////////////////////////"); Out.WriteLine("/////////////////////////////////////TESTCASE//////////////////////////////////////////////////"); Out.WriteLine("///////////////////////////////////////////////////////////////////////////////////////////////"); Out.WriteLine("Please type the testcase's name that you want to generate testdata."); Out.WriteLine("/e: for exit to menu."); Out.Write("TestCase: "); input = In.ReadLine(); if (input.Equals("/e")) break; } while (!TCaseExist(input)); if (input.Equals("/e")) break; TestCase inTCase = getTestCase(input); List<string> listParams = util.getListValueFromString(inTCase.Parameters); int nArguments = listParams.Count; List<string> lines = new List<string>(nArguments); List<string> listvalues = new List<string>(); do { bool flag = true; Out.WriteLine("Please type the input param with syntax: [value1],[value2],..[valuen]"); Out.WriteLine("/b: for choose another testcase."); Out.WriteLine("/e: for exit to menu."); for (int i = 0; i < nArguments; i++) { Out.Write("Input for param " + listParams[i] + " :"); input = In.ReadLine(); if (input.Equals("/b") || input.Equals("/e")) flag = false; string temp = listParams[i] + ":" + input; lines.Add(temp); } if (!flag) break; pict Pict = new pict(); listvalues = Pict.Generate(lines); } while (!GenerateTestDatas(listvalues, inTCase)); } while (!input.Equals("/e")); return true; }