예제 #1
0
        /// <inheritdoc/>
        public override bool Equals(MultiNodeMessage other)
        {
            var otherResultMessage = other as MultiNodeResultMessage;

            return(otherResultMessage != null &&
                   base.Equals(other) &&
                   Passed == otherResultMessage.Passed);
        }
        /// <summary>
        /// Creates a deep copy of the current <see cref="NodeData"/> object
        /// </summary>
        public NodeData Copy()
        {
            var events = new MultiNodeMessage[_eventTimeLine.Count];

            _eventTimeLine.CopyTo(events);

            return(new NodeData(NodeIndex, NodeRole, StartTime, events, EndTime, Passed));
        }
예제 #3
0
        /// <inheritdoc/>
        public override bool Equals(MultiNodeMessage other)
        {
            var otherLogMessage = other as MultiNodeLogMessage;

            return(otherLogMessage != null &&
                   base.Equals(other) &&
                   LogLevel == otherLogMessage.LogLevel &&
                   string.Equals(ActorPath, otherLogMessage.ActorPath));
        }
        /// <summary>
        /// Pushes a new message onto the <see cref="EventStream"/> for this node.
        /// </summary>
        public void Put(MultiNodeMessage message)
        {
            //Check for passed messages
            if (!Passed.HasValue && message is MultiNodeResultMessage)
            {
                var resultMessage = message as MultiNodeResultMessage;
                Passed  = resultMessage.Passed;
                EndTime = DateTime.UtcNow.Ticks;
            }

            _eventTimeLine.Add(message);
        }
        /// <summary>
        /// Creates a deep copy of the current <see cref="FactData"/> object.
        /// </summary>
        public FactData Copy()
        {
            var nodeData = new Dictionary <int, NodeData>(_nodes.Count);

            foreach (var node in _nodes)
            {
                //make a copy of the NodeData too
                nodeData[node.Key] = node.Value.Copy();
            }

            var messageTimeline = new MultiNodeMessage[_testRunnerTimeLine.Count];

            _testRunnerTimeLine.CopyTo(messageTimeline);

            return(new FactData(FactName, StartTime, nodeData, messageTimeline, EndTime, Passed));
        }
 public void Put(MultiNodeMessage message)
 {
     _testRunnerTimeLine.Add(message);
 }
예제 #7
0
        /// <summary>
        /// Send a <see cref="MultiNodeMessage"/> to the correct <see cref="NodeDataActor"/> based on the
        /// <see cref="MultiNodeMessage.NodeIndex"/> property.
        /// </summary>
        private void RouteToNodeActor(MultiNodeMessage message)
        {
            var actor = _nodeActors[message.NodeIndex];

            actor.Tell(message);
        }