コード例 #1
0
        public virtual void TestCreateNodeResultBecomeActive()
        {
            MockNoPriorActive();
            elector.JoinElection(data);
            elector.ProcessResult(KeeperException.Code.Ok.IntValue(), ZkLockName, mockZK, ZkLockName
                                  );
            Org.Mockito.Mockito.Verify(mockApp, Org.Mockito.Mockito.Times(1)).BecomeActive();
            VerifyExistCall(1);
            // monitor callback verifies the leader is ephemeral owner of lock but does
            // not call becomeActive since its already active
            Stat stat = new Stat();

            stat.SetEphemeralOwner(1L);
            Org.Mockito.Mockito.When(mockZK.GetSessionId()).ThenReturn(1L);
            elector.ProcessResult(KeeperException.Code.Ok.IntValue(), ZkLockName, mockZK, stat
                                  );
            // should not call neutral mode/standby/active
            Org.Mockito.Mockito.Verify(mockApp, Org.Mockito.Mockito.Times(0)).EnterNeutralMode
                ();
            Org.Mockito.Mockito.Verify(mockApp, Org.Mockito.Mockito.Times(0)).BecomeStandby();
            Org.Mockito.Mockito.Verify(mockApp, Org.Mockito.Mockito.Times(1)).BecomeActive();
            // another joinElection not called.
            Org.Mockito.Mockito.Verify(mockZK, Org.Mockito.Mockito.Times(1)).Create(ZkLockName
                                                                                    , data, ZooDefs.Ids.OpenAclUnsafe, CreateMode.Ephemeral, elector, mockZK);
            // no new monitor called
            VerifyExistCall(1);
        }