public TestResultDecipher readLineForTest(string testName, string line, TestResultDecipher testDecipher) { // Test result goes something like this: // testName;ClientId;Action;args // has to have 3 words min, args are optional string[] words = line.Split(';'); if (words[0] != testName || words.Length < 3) { // This is not the required test case, or data is not valid return(testDecipher); } if (testDecipher != null) { if (words.Length == 3) { // this is a startAction / endAction statement TestActionRecord testActionRecord = new TestActionRecord(); testActionRecord.type = words[1]; testActionRecord.action = words[2]; testDecipher.addTestActionRecord(testActionRecord); } else if (words.Length >= 4) { TestActionRecord testActionRecord = new TestActionRecord(); testActionRecord.type = words[1]; testActionRecord.photonId = words[2]; testActionRecord.action = words[3]; if (words.Length > 4) { for (var i = 4; i < words.Length; i++) { string reference = words[i]; testActionRecord.references.Add(reference); } } testDecipher.addTestActionRecord(testActionRecord); } } return(testDecipher); }