/// <summary> /// Set XRay runtime ids on all steps under this RhinoTestCase. /// </summary> /// <param name="testCase">RhinoTestCase on which to update runtime ids.</param> /// <param name="testExecutionKey">Jira test execution key by which to find runtime ids.</param> public static void SetRuntimeKeys(this RhinoTestCase testCase, string testExecutionKey) { // setup var ravenClient = new JiraCommandsExecutor(testCase.GetAuthentication()); var command = RavenCommandsRepository.GetTestRunExecutionDetails(testExecutionKey, testCase.Key); // send var response = ravenClient.SendCommand(command).AsJToken(); // exit conditions if ($"{response["id"]}".Equals("-1")) { return; } // setup var jsonToken = response["steps"]; var stepsToken = JArray.Parse($"{jsonToken}"); var stepsCount = testCase.Steps.Count(); // apply runtime id to test-step context for (int i = 0; i < stepsCount; i++) { testCase.Steps.ElementAt(i).Context["runtimeid"] = stepsToken[i]["id"].ToObject <long>(); testCase.Steps.ElementAt(i).Context["testStep"] = JToken.Parse($"{stepsToken[i]}"); } // apply test run key int.TryParse($"{response["id"]}", out int idOut); testCase.Context["runtimeid"] = idOut; testCase.Context["testRunKey"] = testExecutionKey; }
/// <summary> /// Set XRay runtime ids on all steps under this RhinoTestCase. /// </summary> /// <param name="testCase">RhinoTestCase on which to update runtime ids.</param> /// <param name="testExecutionKey">Jira test execution key by which to find runtime ids.</param> public static void SetRuntimeKeys(this RhinoTestCase testCase, string testExecutionKey) { // setup var ravenClient = new JiraCommandsExecutor(testCase.GetAuthentication()); var command = RavenCommandsRepository.GetTestRunExecutionDetails(testExecutionKey, testCase.Key); // send var response = ravenClient.SendCommand(command).AsJToken(); // exit conditions if ($"{response["id"]}".Equals("-1")) { return; } // setup var jsonToken = response["steps"]; var stepsToken = JArray.Parse($"{jsonToken}"); var aggregated = testCase.AggregateSteps(); var steps = aggregated.Steps.ToList(); // apply runtime id to test-step context for (int i = 0; i < steps.Count; i++) { steps[i].Context["runtimeid"] = stepsToken[i]["id"].ToObject <long>(); steps[i].Context["testStep"] = JToken.Parse($"{stepsToken[i]}"); var isKey = steps[i].Context.ContainsKey(ContextEntry.ChildSteps); var isType = isKey && steps[i].Context[ContextEntry.ChildSteps] is IEnumerable <RhinoTestStep>; if (isType) { foreach (var _step in (IEnumerable <RhinoTestStep>)steps[i].Context[ContextEntry.ChildSteps]) { _step.Context["runtimeid"] = steps[i].Context["runtimeid"]; } } } // apply test run key _ = int.TryParse($"{response["id"]}", out int idOut); testCase.Context["runtimeid"] = idOut; testCase.Context["testRunKey"] = testExecutionKey; testCase.Context["aggregated"] = aggregated; aggregated.Steps = steps; }