Beispiel #1
0
        public void TestListenerReconnect()
        {
            var name       = TestSupport.RandomString();
            var map        = Client.GetMap <string, string>(name);
            var eventCount = 0;
            var count      = 2;
            var regId      = map.AddEntryListener(new EntryAdapter <string, string>
            {
                Added = e => { Interlocked.Increment(ref eventCount); }
            }, true);

            // try to start and stop the instance several times
            for (var i = 0; i < count; i++)
            {
                var clientDisconnected = TestSupport.WaitForClientState(Client,
                                                                        LifecycleEvent.LifecycleState.ClientDisconnected);
                Cluster.RemoveNode();
                TestSupport.AssertCompletedEventually(clientDisconnected, taskName: "clientDisconnected");
                Interlocked.Exchange(ref eventCount, 0);
                var clientConnected = TestSupport.WaitForClientState(Client,
                                                                     LifecycleEvent.LifecycleState.ClientConnected);
                Cluster.AddNode();
                TestSupport.AssertCompletedEventually(clientConnected, taskName: "clientConnected");

                TestSupport.AssertTrueEventually(() =>
                {
                    map.Put(Guid.NewGuid().ToString(), Guid.NewGuid().ToString());
                    return(eventCount > 0);
                });
            }
            Assert.IsTrue(map.RemoveEntryListener(regId));
            map.Destroy();
        }
Beispiel #2
0
        public void TestReconnect()
        {
            var member = _remoteController.startMember(_cluster.Id);
            var client = CreateClient();

            var name = TestSupport.RandomString();
            var map  = client.GetMap <string, string>(name);

            map.Put("key", "value");
            Assert.AreEqual("value", map.Get("key"));

            var clientDisconnected = TestSupport.WaitForClientState(client,
                                                                    LifecycleEvent.LifecycleState.ClientDisconnected);

            _remoteController.shutdownMember(_cluster.Id, member.Uuid);

            TestSupport.AssertCompletedEventually(clientDisconnected, taskName: "clientDisconnected");

            var clientConnected = TestSupport.WaitForClientState(client, LifecycleEvent.LifecycleState.ClientConnected);

            _remoteController.startMember(_cluster.Id);

            TestSupport.AssertCompletedEventually(clientConnected, taskName: "clientConnected");

            map.Put("key", "value2");
            Assert.AreEqual("value2", map.Get("key"));

            map.Destroy();
        }
Beispiel #3
0
        public void TestPromoteToOwner()
        {
            var member1 = _remoteController.startMember(_cluster.Id);
            var client  = CreateClient();

            var member2 = StartMemberAndWait(client, _remoteController, _cluster, 2);

            var name = TestSupport.RandomString();
            var map  = client.GetMap <int, int>(name);

            for (var i = 0; i < 1000; i++)
            {
                map.Put(i, i);
            }

            var clientDisconnected = TestSupport.WaitForClientState(client,
                                                                    LifecycleEvent.LifecycleState.ClientDisconnected);
            var clientConnected = TestSupport.WaitForClientState(client, LifecycleEvent.LifecycleState.ClientConnected);

            _remoteController.shutdownMember(_cluster.Id, member1.Uuid);

            TestSupport.AssertCompletedEventually(clientDisconnected, taskName: "clientDisconnected");
            TestSupport.AssertCompletedEventually(clientConnected, taskName: "clientConnected");
            Assert.AreEqual(1000, map.Size());
        }
Beispiel #4
0
        public void TestPromoteToOwner()
        {
            AddNodeAndWait();
            var name = TestSupport.RandomString();
            var map  = Client.GetMap <int, int>(name);

            for (int i = 0; i < 1000; i++)
            {
                map.Put(i, i);
            }

            var clientDisconnected = TestSupport.WaitForClientState(Client,
                                                                    LifecycleEvent.LifecycleState.ClientDisconnected);
            var clientConnected = TestSupport.WaitForClientState(Client, LifecycleEvent.LifecycleState.ClientConnected);

            Cluster.RemoveNode(Cluster.NodeIds.First());
            TestSupport.AssertCompletedEventually(clientDisconnected, taskName: "clientDisconnected");
            TestSupport.AssertCompletedEventually(clientConnected, taskName: "clientConnected");
            Assert.AreEqual(1000, map.Size());
        }
        public void TestExtremeReconnect()
        {
            var member = _remoteController.startMember(_cluster.Id);
            var client = CreateClient();

            for (int i = 0; i < 50; i++)
            {
                var clientDisconnected = TestSupport.WaitForClientState(client,
                                                                        LifecycleEvent.LifecycleState.ClientDisconnected);

                _remoteController.shutdownMember(_cluster.Id, member.Uuid);
                TestSupport.AssertCompletedEventually(clientDisconnected, taskName: $"clientDisconnected-{i}");

                var clientConnected = TestSupport.WaitForClientState(client,
                                                                     LifecycleEvent.LifecycleState.ClientConnected);

                member = _remoteController.startMember(_cluster.Id);
                TestSupport.AssertCompletedEventually(clientConnected, taskName: $"clientConnected-{i}");
            }
        }
Beispiel #6
0
        public void TestReconnect()
        {
            var name = TestSupport.RandomString();
            var map  = Client.GetMap <string, string>(name);

            map.Put("key", "value");
            Assert.AreEqual("value", map.Get("key"));

            var clientDisconnected = TestSupport.WaitForClientState(Client, LifecycleEvent.LifecycleState.ClientDisconnected);

            Cluster.RemoveNode();
            TestSupport.AssertCompletedEventually(clientDisconnected, taskName: "clientDisconnected");

            var clientConnected = TestSupport.WaitForClientState(Client, LifecycleEvent.LifecycleState.ClientConnected);

            Cluster.AddNode();
            TestSupport.AssertCompletedEventually(clientConnected, taskName: "clientConnected");

            map.Put("key", "value2");
            Assert.AreEqual("value2", map.Get("key"));

            map.Destroy();
        }