public void ABarrierCoordinatorMustFailBarrierWhenDisconnectingNodeWhoAlreadyArrived() { var barrier = GetBarrier(); var a = CreateTestProbe(); var b = CreateTestProbe(); var c = CreateTestProbe(); var nodeA = new Controller.NodeInfo(A, Address.Parse("akka://sys"), a.Ref); var nodeC = new Controller.NodeInfo(C, Address.Parse("akka://sys"), c.Ref); barrier.Tell(nodeA); barrier.Tell(new Controller.NodeInfo(B, Address.Parse("akka://sys"), b.Ref)); barrier.Tell(nodeC); a.Send(barrier, new EnterBarrier("bar7", null)); b.Send(barrier, new EnterBarrier("bar7", null)); //TODO: Event filter? barrier.Tell(new Controller.ClientDisconnected(B)); var msg = ExpectMsg <Failed>(); Assert.Equal(new BarrierCoordinator.ClientLost( new BarrierCoordinator.Data( ImmutableHashSet.Create(nodeA, nodeC), "bar7", ImmutableHashSet.Create(a.Ref), ((BarrierCoordinator.ClientLost)msg.Exception).BarrierData.Deadline) , B), msg.Exception); }
public void ABarrierCoordinatorMustFailIfANodeRegistersTwice() { var barrier = GetBarrier(); var a = CreateTestProbe(); var b = CreateTestProbe(); var nodeA = new Controller.NodeInfo(A, Address.Parse("akka://sys"), a.Ref); var nodeB = new Controller.NodeInfo(A, Address.Parse("akka://sys"), b.Ref); barrier.Tell(nodeA); //TODO: Event filter barrier.Tell(nodeB); var msg = ExpectMsg <Failed>(); Assert.Equal(new BarrierCoordinator.DuplicateNode( new BarrierCoordinator.Data( ImmutableHashSet.Create(nodeA), "", ImmutableHashSet.Create <IActorRef>(), ((BarrierCoordinator.DuplicateNode)msg.Exception).BarrierData.Deadline) , nodeB), msg.Exception); }
public void A_BarrierCoordinator_must_fail_barrier_with_disconnecting_node() { var barrier = GetBarrier(); var a = CreateTestProbe(); var b = CreateTestProbe(); var nodeA = new Controller.NodeInfo(A, Address.Parse("akka://sys"), a.Ref); barrier.Tell(nodeA); barrier.Tell(new Controller.NodeInfo(B, Address.Parse("akka://sys"), b.Ref)); a.Send(barrier, new EnterBarrier("bar6", null)); //TODO: EventFilter? barrier.Tell(new Controller.ClientDisconnected(B)); var msg = ExpectMsg <Failed>(); Assert.Equal(new BarrierCoordinator.ClientLostException( new BarrierCoordinator.Data( ImmutableHashSet.Create(nodeA), "bar6", ImmutableHashSet.Create(a.Ref), ((BarrierCoordinator.ClientLostException)msg.Exception).BarrierData.Deadline) , B), msg.Exception); }
public void ABarrierCoordinatorMustFailAfterBarrierTimeout() { var barrier = GetBarrier(); var a = CreateTestProbe(); var b = CreateTestProbe(); var nodeA = new Controller.NodeInfo(A, Address.Parse("akka://sys"), a.Ref); var nodeB = new Controller.NodeInfo(B, Address.Parse("akka://sys"), b.Ref); barrier.Tell(nodeA); barrier.Tell(nodeB); a.Send(barrier, new EnterBarrier("bar10", null)); EventFilter.Exception <BarrierCoordinator.BarrierTimeout>().ExpectOne(() => { var msg = ExpectMsg <Failed>(TimeSpan.FromSeconds(7)); Assert.Equal(new BarrierCoordinator.BarrierTimeout( new BarrierCoordinator.Data( ImmutableHashSet.Create(nodeA, nodeB), "bar10", ImmutableHashSet.Create(a.Ref), ((BarrierCoordinator.BarrierTimeout)msg.Exception).BarrierData.Deadline) ), msg.Exception); }); }
public void A_BarrierCoordinator_must_fail_if_a_node_registers_twice() { var barrier = GetBarrier(); var a = CreateTestProbe(); var b = CreateTestProbe(); var nodeA = new Controller.NodeInfo(A, Address.Parse("akka://sys"), a.Ref); var nodeB = new Controller.NodeInfo(A, Address.Parse("akka://sys"), b.Ref); barrier.Tell(nodeA); //TODO: Event filter barrier.Tell(nodeB); var msg = ExpectMsg<Failed>(); Assert.Equal(new BarrierCoordinator.DuplicateNodeException( new BarrierCoordinator.Data( ImmutableHashSet.Create(nodeA), "", ImmutableHashSet.Create<IActorRef>(), ((BarrierCoordinator.DuplicateNodeException)msg.Exception).BarrierData.Deadline) , nodeB), msg.Exception); }
public void A_BarrierCoordinator_must_fail_after_barrier_timeout() { var barrier = GetBarrier(); var a = CreateTestProbe(); var b = CreateTestProbe(); var nodeA = new Controller.NodeInfo(A, Address.Parse("akka://sys"), a.Ref); var nodeB = new Controller.NodeInfo(B, Address.Parse("akka://sys"), b.Ref); barrier.Tell(nodeA); barrier.Tell(nodeB); a.Send(barrier, new EnterBarrier("bar10", null)); EventFilter.Exception<BarrierCoordinator.BarrierTimeoutException>().ExpectOne(() => { var msg = ExpectMsg<Failed>(TimeSpan.FromSeconds(7)); Assert.Equal(new BarrierCoordinator.BarrierTimeoutException( new BarrierCoordinator.Data( ImmutableHashSet.Create(nodeA, nodeB), "bar10", ImmutableHashSet.Create(a.Ref), ((BarrierCoordinator.BarrierTimeoutException)msg.Exception).BarrierData.Deadline) ), msg.Exception); }); }
public void A_BarrierCoordinator_must_fail_barrier_when_disconnecting_node_who_already_arrived() { var barrier = GetBarrier(); var a = CreateTestProbe(); var b = CreateTestProbe(); var c = CreateTestProbe(); var nodeA = new Controller.NodeInfo(A, Address.Parse("akka://sys"), a.Ref); var nodeC = new Controller.NodeInfo(C, Address.Parse("akka://sys"), c.Ref); barrier.Tell(nodeA); barrier.Tell(new Controller.NodeInfo(B, Address.Parse("akka://sys"), b.Ref)); barrier.Tell(nodeC); a.Send(barrier, new EnterBarrier("bar7", null)); b.Send(barrier, new EnterBarrier("bar7", null)); //TODO: Event filter? barrier.Tell(new Controller.ClientDisconnected(B)); var msg = ExpectMsg<Failed>(); Assert.Equal(new BarrierCoordinator.ClientLostException( new BarrierCoordinator.Data( ImmutableHashSet.Create(nodeA, nodeC), "bar7", ImmutableHashSet.Create(a.Ref), ((BarrierCoordinator.ClientLostException)msg.Exception).BarrierData.Deadline) , B), msg.Exception); }
public void ABarrierCoordinatorMustFailBarrierWithDisconnectingNode() { var barrier = GetBarrier(); var a = CreateTestProbe(); var b = CreateTestProbe(); var nodeA = new Controller.NodeInfo(A, Address.Parse("akka://sys"), a.Ref); barrier.Tell(nodeA); barrier.Tell(new Controller.NodeInfo(B, Address.Parse("akka://sys"), b.Ref)); a.Send(barrier, new EnterBarrier("bar6", null)); //TODO: EventFilter? barrier.Tell(new Controller.ClientDisconnected(B)); var msg = ExpectMsg<Failed>(); Assert.Equal(new BarrierCoordinator.ClientLost( new BarrierCoordinator.Data( ImmutableHashSet.Create(nodeA), "bar6", ImmutableHashSet.Create(a.Ref), ((BarrierCoordinator.ClientLost) msg.Exception).BarrierData.Deadline) , B), msg.Exception); }