public void SystemMessageList_value_class_must_be_able_to_deconstruct_head_and_tail() { var create0 = new Failed(null, null, 0); var create1 = new Failed(null, null, 1); var create2 = new Failed(null, null, 2); var list = LNil + create0 + create1 + create2; (list.Head == create2).ShouldBeTrue(); (list.Tail.Head == create1).ShouldBeTrue(); (list.Tail.Tail.Head == create0).ShouldBeTrue(); (list.Tail.Tail.Tail.Head == null).ShouldBeTrue(); }
public void SystemMessageList_value_class_must_be_able_to_append_messages() { var create0 = new Failed(null, null, 0); var create1 = new Failed(null, null, 1); var create2 = new Failed(null, null, 2); ((LNil + create0).Head == create0).ShouldBeTrue(); ((LNil + create0 + create1).Head == create1).ShouldBeTrue(); ((LNil + create0 + create1 + create2).Head == create2).ShouldBeTrue(); (create2.Next == create1).ShouldBeTrue(); (create1.Next == create0).ShouldBeTrue(); (create0.Next == null).ShouldBeTrue(); }
public void SystemMessageList_value_class_must_be_able_to_properly_report_size_and_emptyness() { var create0 = new Failed(null, null, 0); var create1 = new Failed(null, null, 1); var create2 = new Failed(null, null, 2); var list = LNil + create0 + create1 + create2; list.Size.ShouldBe(3); list.IsEmpty.ShouldBeFalse(); list.Tail.Size.ShouldBe(2); list.Tail.IsEmpty.ShouldBeFalse(); list.Tail.Tail.Size.ShouldBe(1); list.Tail.Tail.IsEmpty.ShouldBeFalse(); list.Tail.Tail.Tail.Size.ShouldBe(0); list.Tail.Tail.Tail.IsEmpty.ShouldBeTrue(); }
public void SystemMessageList_value_class_must_be_able_to_properly_reverse_contents() { var create0 = new Failed(null, null, 0); var create1 = new Failed(null, null, 1); var create2 = new Failed(null, null, 2); var list = LNil + create0 + create1 + create2; EarliestFirstSystemMessageList listRev = list.Reverse; listRev.IsEmpty.ShouldBeFalse(); listRev.Size.ShouldBe(3); (listRev.Head == create0).ShouldBeTrue(); (listRev.Tail.Head == create1).ShouldBeTrue(); (listRev.Tail.Tail.Head == create2).ShouldBeTrue(); (listRev.Tail.Tail.Tail.Head == null).ShouldBeTrue(); (create0.Next == create1).ShouldBeTrue(); (create1.Next == create2).ShouldBeTrue(); (create2.Next == null).ShouldBeTrue(); }
private void HandleFailed(Failed f) //Called handleFailure in Akka JVM { CurrentMessage = f; var failedChild = f.Child; var failedChildIsNobody = failedChild.IsNobody(); Sender = failedChildIsNobody ? _systemImpl.DeadLetters : failedChild; //Only act upon the failure, if it comes from a currently known child; //the UID protects against reception of a Failed from a child which was //killed in preRestart and re-created in postRestart ChildRestartStats childStats; if (TryGetChildStatsByRef(failedChild, out childStats)) { var statsUid = childStats.Child.Path.Uid; if (statsUid == f.Uid) { var handled = _actor.SupervisorStrategyInternal.HandleFailure(this, f.Cause, childStats, ChildrenContainer.Stats); if (!handled) throw f.Cause; } else { Publish(new Debug(_self.Path.ToString(), _actor.GetType(), "Dropping Failed(" + f.Cause + ") from old child " + f.Child + " (uid=" + statsUid + " != " + f.Uid + ")")); } } else { Publish(new Debug(_self.Path.ToString(), _actor.GetType(), "Dropping Failed(" + f.Cause + ") from unknown child " + failedChild)); } }
public FF(Failed fail) : this() { Fail = fail; }
/// <summary> /// Handles the failed. /// </summary> /// <param name="m">The m.</param> private void HandleFailed(Failed m) { bool handled = _actor.SupervisorStrategyLazy().HandleFailure(this, m.Child, m.Cause); if (!handled) throw m.Cause; }
public void EarliestFirstSystemMessageList_must_properly_prepend_reversed_message_lists_to_the_front() { var create0 = new Failed(null, null, 0); var create1 = new Failed(null, null, 1); var create2 = new Failed(null, null, 2); var create3 = new Failed(null, null, 3); var create4 = new Failed(null, null, 4); var create5 = new Failed(null, null, 5); var fwdList = ENil + create5 + create4 + create3; var revList = LNil + create0 + create1 + create2; var list = fwdList + revList; (list.Head == create0).ShouldBeTrue(); (list.Tail.Head == create1).ShouldBeTrue(); (list.Tail.Tail.Head == create2).ShouldBeTrue(); (list.Tail.Tail.Tail.Head == create3).ShouldBeTrue(); (list.Tail.Tail.Tail.Tail.Head == create4).ShouldBeTrue(); (list.Tail.Tail.Tail.Tail.Tail.Head == create5).ShouldBeTrue(); ((ENil + LNil).Equals(ENil)).ShouldBeTrue(); (((ENil + create0) + LNil).Head == create0).ShouldBeTrue(); ((ENil + (LNil + create0)).Head == create0).ShouldBeTrue(); }