예제 #1
0
        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);
        }
예제 #4
0
 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();
     }
 }