private IReadonlyNode <TValue> TryToAddChild(IReadonlyNode <TValue> parent, Location test, Func <IReadonlyNode <TValue>, Location, TValue> createValue) { var node = (IEditableNode <TValue>)(parent ?? _superRoot); return(node.FindChild(test.Name) ?? node.AddChild(test.Name, (nod, name) => createValue(nod, test))); }
private TestReporter AddTestReporter(IReadonlyNode <TestReporter> parent, Path path, Location test, string tags) { TestItemType type = TestItemType.Suite; if (test.Index == path.Length - 2) { type = TestItemType.Test; } else if (test.Index == path.Length - 1) { type = TestItemType.Step; } var startTestItemRequest = new StartTestItemRequest() { Name = test.Name, StartTime = DateTime.UtcNow, Type = type, Tags = SplitOnTags(tags) }; var suite = parent.Value != null ? parent.Value.StartNewTestNode(startTestItemRequest) : _launchReporter.StartNewTestNode(startTestItemRequest); return(suite); }
private void DeleteTestReporter(IReadonlyNode <TestReporter> node, Status withStatus) { var finishTestItemRequest = new FinishTestItemRequest() { EndTime = DateTime.UtcNow, Status = (Client.Models.Status)withStatus }; node.Value.Finish(finishTestItemRequest); }
public void DeleteNodeWithChildren(IReadonlyNode <TValue> node, Action <IReadonlyNode <TValue> > postAction) { _lock.EnterWriteLock(); try { var editable = (IEditableNode <TValue>)node; editable.DeleteChildren(postAction); editable.Parent.DeleteChild(editable, postAction); } finally { _lock.ExitWriteLock(); } }