private void PrintSpecRunResults(FactData data)
        {
            WriteSpecMessage(string.Format("Results for {0}", data.FactName));
            WriteSpecMessage(string.Format("Start time: {0}", new DateTime(data.StartTime, DateTimeKind.Utc)));
            foreach (var node in data.NodeFacts)
            {
                WriteSpecMessage(string.Format(" --> Node {0}: {1} [{2} elapsed]", node.Value.NodeIndex,
                    node.Value.Passed.GetValueOrDefault(false) ? "PASS" : "FAIL", node.Value.Elapsed));
            }
            WriteSpecMessage(string.Format("End time: {0}",
                new DateTime(data.EndTime.GetValueOrDefault(DateTime.UtcNow.Ticks), DateTimeKind.Utc)));
            WriteSpecMessage(string.Format("FINAL RESULT: {0} after {1}.",
                data.Passed.GetValueOrDefault(false) ? "PASS" : "FAIL", data.Elapsed));

            //If we had a failure
            if (data.Passed.GetValueOrDefault(false) == false)
            {
                WriteSpecMessage("Failure messages by Node");
                foreach (var node in data.NodeFacts)
                {
                    if (node.Value.Passed.GetValueOrDefault(false) == false)
                    {
                        WriteSpecMessage(string.Format("<----------- BEGIN NODE {0} ----------->", node.Key));
                        foreach (var resultMessage in node.Value.ResultMessages)
                        {
                            WriteSpecMessage(String.Format(" --> {0}", resultMessage.Message));
                        }
                        if(node.Value.ResultMessages == null || node.Value.ResultMessages.Count == 0)
                            WriteSpecMessage("[received no messages - SILENT FAILURE].");
                        WriteSpecMessage(string.Format("<----------- END NODE {0} ----------->", node.Key));
                    }
                }
            }
        }
 public SpecRunCoordinator(string className, string methodName, IList<NodeTest> nodes)
 {
     Nodes = nodes;
     MethodName = methodName;
     ClassName = className;
     FactData = new FactData(string.Format("{0}.{1}", className, methodName));
     _nodeActors = new Dictionary<int, IActorRef>();
     SetReceive();
 }
        public string BuildGroupItems(FactData spec)
        {
            var groups = spec.NodeFacts
                .Select(
                    nf =>
                        string.Format("{{ id:{0}, content:'Node {0}' }}", nf.Value.NodeIndex))
                .Concat(@"{ id:-1, content:'Misc' }");

            return string.Join(",\r\n", groups);
        }
        public string BuildGroupItems(FactData spec)
        {
            var groups = spec.NodeFacts
                         .Select(
                nf =>
                string.Format("{{ id:{0}, content:'Node {0}:{1}' }}", nf.Value.NodeIndex, nf.Value.NodeRole))
                         .Concat(@"{ id:-1, content:'Misc' }");

            return(string.Join(",\r\n", groups));
        }
        public string BuildOptions(FactData spec)
        {
            var events =
                spec.NodeFacts.SelectMany(
                    nodeFact =>
                        nodeFact.Value.EventStream
                            .Select(
                                nodeMessage =>
                                    nodeMessage.TimeStamp))
                    .ToList();

            var startEventTimeParameter = "null";
            var endEventTimeParameter = "null";

            if (events.Count > 0)
            {
                var firstEventTimeStamp = events.Aggregate(
                    (aggregate, nextValue) =>
                        aggregate > nextValue
                            ? nextValue
                            : aggregate);

                var lastEventTimeStamp = events.Aggregate(
                    (aggregate, nextValue) =>
                        aggregate < nextValue
                            ? nextValue
                            : aggregate);


                var startEventTime = new DateTime(firstEventTimeStamp);
                var endDisplayTime = new DateTime(lastEventTimeStamp);

                // TODO: Find a better way of calculating additional time from message length
                // The last message is the 3 second wait. Which is about half the delta from start to end in length.
                var startEndDelta = (endDisplayTime - startEventTime).Ticks / 2;
                endDisplayTime = endDisplayTime.AddTicks(startEndDelta);

                startEventTimeParameter = string.Format("'{0}'", startEventTime.ToString("o"));
                endEventTimeParameter = string.Format("'{0}'", endDisplayTime.ToString("o"));
            }


            return string.Format(
                "{{ start:{0}, end:{1}, align:'left', clickToUse:true }}",
                startEventTimeParameter,
                endEventTimeParameter);
        }
        public string BuildOptions(FactData spec)
        {
            var events =
                spec.NodeFacts.SelectMany(
                    nodeFact =>
                    nodeFact.Value.EventStream
                    .Select(
                        nodeMessage =>
                        nodeMessage.TimeStamp))
                .ToList();

            var startEventTimeParameter = "null";
            var endEventTimeParameter   = "null";

            if (events.Count > 0)
            {
                var firstEventTimeStamp = events.Aggregate(
                    (aggregate, nextValue) =>
                    aggregate > nextValue
                            ? nextValue
                            : aggregate);

                var lastEventTimeStamp = events.Aggregate(
                    (aggregate, nextValue) =>
                    aggregate < nextValue
                            ? nextValue
                            : aggregate);


                var startEventTime = new DateTime(firstEventTimeStamp);
                var endDisplayTime = new DateTime(lastEventTimeStamp);

                // TODO: Find a better way of calculating additional time from message length
                // The last message is the 3 second wait. Which is about half the delta from start to end in length.
                var startEndDelta = (endDisplayTime - startEventTime).Ticks / 2;
                endDisplayTime = endDisplayTime.AddTicks(startEndDelta);

                startEventTimeParameter = string.Format("'{0}'", startEventTime.ToString("o"));
                endEventTimeParameter   = string.Format("'{0}'", endDisplayTime.ToString("o"));
            }


            return(string.Format(
                       "{{ start:{0}, end:{1}, align:'left', clickToUse:true }}",
                       startEventTimeParameter,
                       endEventTimeParameter));
        }
        public string BuildTimelineItem(FactData spec)
        {
            var messages = spec.RunnerMessages
                .Select(m => TimelineItemFactory.CreateSpecMessage(Prefix, m.Message, m.NodeIndex, m.TimeStamp));

            var facts =
                spec.NodeFacts.SelectMany(
                    nodeFact =>
                        nodeFact.Value.EventStream.Select(
                            nodeMessage =>
                                TimelineItemFactory.CreateNodeFact(
                                    Prefix,
                                    nodeMessage.Message,
                                    nodeMessage.NodeIndex,
                                    nodeMessage.TimeStamp)));

            var itemStrings = messages.Concat(facts)
                .Select(i => i.ToJavascriptString());

            return string.Join(",\r\n", itemStrings);
        }
        public string BuildTimelineItem(FactData spec)
        {
            var messages = spec.RunnerMessages
                           .Select(m => TimelineItemFactory.CreateSpecMessage(Prefix, m.Message, m.NodeIndex, m.TimeStamp));

            var facts =
                spec.NodeFacts.SelectMany(
                    nodeFact =>
                    nodeFact.Value.EventStream.Select(
                        nodeMessage =>
                        TimelineItemFactory.CreateNodeFact(
                            Prefix,
                            nodeMessage.Message,
                            nodeMessage.NodeIndex,
                            nodeMessage.TimeStamp)));

            var itemStrings = messages.Concat(facts)
                              .Select(i => i.ToJavascriptString());

            return(string.Join(",\r\n", itemStrings));
        }
        private void PrintSpecRunResults(FactData data)
        {
            WriteSpecMessage(string.Format("Results for {0}", data.FactName));
            WriteSpecMessage(string.Format("Start time: {0}", new DateTime(data.StartTime, DateTimeKind.Utc)));
            foreach (var node in data.NodeFacts)
            {
                WriteSpecMessage(string.Format(" --> Node {0}: {1} [{2} elapsed]", node.Value.NodeIndex,
                                               node.Value.Passed.GetValueOrDefault(false) ? "PASS" : "FAIL", node.Value.Elapsed));
            }
            WriteSpecMessage(string.Format("End time: {0}",
                                           new DateTime(data.EndTime.GetValueOrDefault(DateTime.UtcNow.Ticks), DateTimeKind.Utc)));
            WriteSpecMessage(string.Format("FINAL RESULT: {0} after {1}.",
                                           data.Passed.GetValueOrDefault(false) ? "PASS" : "FAIL", data.Elapsed));

            //If we had a failure
            if (data.Passed.GetValueOrDefault(false) == false)
            {
                WriteSpecMessage("Failure messages by Node");
                foreach (var node in data.NodeFacts)
                {
                    if (node.Value.Passed.GetValueOrDefault(false) == false)
                    {
                        WriteSpecMessage(string.Format("<----------- BEGIN NODE {0} ----------->", node.Key));
                        foreach (var resultMessage in node.Value.ResultMessages)
                        {
                            WriteSpecMessage(String.Format(" --> {0}", resultMessage.Message));
                        }
                        if (node.Value.ResultMessages == null || node.Value.ResultMessages.Count == 0)
                        {
                            WriteSpecMessage("[received no messages - SILENT FAILURE].");
                        }
                        WriteSpecMessage(string.Format("<----------- END NODE {0} ----------->", node.Key));
                    }
                }
            }
        }
 protected abstract void ReceiveFactData(FactData data);
 public string BuildSpecificationId(FactData spec)
 {
     return spec.FactName.Replace(".", "_");
 }
 protected abstract void ReceiveFactData(FactData data);
 public string BuildSpecificationId(FactData spec)
 {
     return(spec.FactName.Replace(".", "_"));
 }
 protected override void ReceiveFactData(FactData data)
 {
     PrintSpecRunResults(data);
 }
 public Function()
 {
     _client = new FactData();
 }
Esempio n. 16
0
 protected override void ReceiveFactData(FactData data)
 {
 }
 protected override void ReceiveFactData(FactData data)
 {
     //Ask the TestRunCoordinator to give us the latest state
     Sender.Tell(new TestRunCoordinator.RequestTestRunState());
 }
 protected override void ReceiveFactData(FactData data)
 {
     //Ask the TestRunCoordinator to give us the latest state
     Sender.Tell(new TestRunCoordinator.RequestTestRunState());
 }
 protected override void ReceiveFactData(FactData data)
 {
     PrintSpecRunResults(data);
 }