Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
            });
        }
Esempio n. 5
0
 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);
 }
Esempio n. 6
0
 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);
     });
 }
Esempio n. 7
0
        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);

        }
Esempio n. 8
0
 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);
 }