Пример #1
0
        public void AddServer_ReplyNotLeaderIfNotLeader()
        {
            using (var mock = new T())
            using (var s1 = mock.CreateServer())
            using (var s2 = mock.CreateServer())
            {

                s1.Initialize();
                s2.Initialize();
                //s1.ChangeState(new CandidateState(s1)); // will push s1 to term 2

                //s1.Advance();

                var testState = new TestState(s2);
                s2.ChangeState(testState);

                var request = new AddServerRequest()
                {
                    From = s2.ID
                };

                s2.Transport.SendMessage(new Client(s2, s1.ID), request);
                s1.Advance();
                s2.Advance();

                //s2.Transport.SendMessage(new Client())

                Assert.AreEqual(typeof(AddServerReply), testState.LastMessage.GetType());
                Assert.AreEqual(AddServerStatus.NotLeader, ((AddServerReply)testState.LastMessage).Status);
            }
        }
Пример #2
0
 public bool AddServerRequest(AddServerRequest request)
 {
     var client = _server.GetClient(request.From);
     return AddServerRequest(client, request);
 }
Пример #3
0
 protected override bool AddServerRequest(Client client, AddServerRequest request)
 {
     return true;
 }
Пример #4
0
 protected virtual bool AddServerRequest(Client client, AddServerRequest request)
 {
     client.SendAddServerReply(AddServerStatus.NotLeader, null);
     return true;
 }
Пример #5
0
 protected override bool AddServerRequest(Client client, AddServerRequest request)
 {
     QueueServerJoin(client);
     return true;
 }
Пример #6
0
 public void SendAddServerRequest()
 {
     Console.WriteLine("{0}: Sending add server request to {1}", _server.Name, this.ID);
     var message = new AddServerRequest()
     {
         From = _server.ID,
         //EndPoint = new IPEndPoint(_server.Config.IP, _server.Config.Port)
     };
     _lastMessage = message;
     _server.Transport.SendMessage(this, message);
     _rpcDue = _server.Tick + _server.PersistedStore.RPC_TIMEOUT;
 }
Пример #7
0
 protected override bool AddServerRequest(Client client, AddServerRequest request)
 {
     LastMessage = request;
     LastClient = client;
     return true;
 }
Пример #8
0
        protected override bool AddServerRequest(Client client, AddServerRequest request)
        {
            if (_leader != null)
            {
                client.SendAddServerReply(AddServerStatus.NotLeader, _leader.ID);
                return true;
            }

            return base.AddServerRequest(client, request);
        }