//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void whenInSlaveStateLosingOtherSlaveShouldNotPutInPending() public virtual void WhenInSlaveStateLosingOtherSlaveShouldNotPutInPending() { // Given InstanceId me = new InstanceId(1); InstanceId master = new InstanceId(2); InstanceId otherSlave = new InstanceId(3); HighAvailabilityMemberContext context = new SimpleHighAvailabilityMemberContext(me, false); AvailabilityGuard guard = mock(typeof(DatabaseAvailabilityGuard)); ObservedClusterMembers members = MockClusterMembers(me, singletonList(master), singletonList(otherSlave)); ClusterMemberEvents events = mock(typeof(ClusterMemberEvents)); ClusterMemberListenerContainer memberListenerContainer = MockAddClusterMemberListener(events); HighAvailabilityMemberStateMachine stateMachine = BuildMockedStateMachine(context, events, members, guard); stateMachine.Init(); ClusterMemberListener memberListener = memberListenerContainer.Get(); HAStateChangeListener probe = new HAStateChangeListener(); stateMachine.AddHighAvailabilityMemberListener(probe); // Send it to MASTER memberListener.MemberIsAvailable(MASTER, master, URI.create("ha://whatever"), StoreId.DEFAULT); memberListener.MemberIsAvailable(SLAVE, me, URI.create("ha://whatever3"), StoreId.DEFAULT); memberListener.MemberIsAvailable(SLAVE, otherSlave, URI.create("ha://whatever2"), StoreId.DEFAULT); assertThat(stateMachine.CurrentState, equalTo(HighAvailabilityMemberState.Slave)); // When memberListener.MemberIsFailed(otherSlave); // Then assertThat(stateMachine.CurrentState, equalTo(HighAvailabilityMemberState.Slave)); assertThat(probe.InstanceStopsConflict, @is(false)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void whenInToSlaveStateLosingQuorumShouldPutInPending() public virtual void WhenInToSlaveStateLosingQuorumShouldPutInPending() { // Given InstanceId me = new InstanceId(1); InstanceId other = new InstanceId(2); HighAvailabilityMemberContext context = new SimpleHighAvailabilityMemberContext(me, false); AvailabilityGuard guard = mock(typeof(DatabaseAvailabilityGuard)); ObservedClusterMembers members = MockClusterMembers(me, emptyList(), singletonList(other)); ClusterMemberEvents events = mock(typeof(ClusterMemberEvents)); ClusterMemberListenerContainer memberListenerContainer = MockAddClusterMemberListener(events); HighAvailabilityMemberStateMachine stateMachine = BuildMockedStateMachine(context, events, members, guard); stateMachine.Init(); ClusterMemberListener memberListener = memberListenerContainer.Get(); HAStateChangeListener probe = new HAStateChangeListener(); stateMachine.AddHighAvailabilityMemberListener(probe); // Send it to MASTER memberListener.MemberIsAvailable(MASTER, other, URI.create("ha://whatever"), StoreId.DEFAULT); assertThat(stateMachine.CurrentState, equalTo(HighAvailabilityMemberState.ToSlave)); // When memberListener.MemberIsFailed(new InstanceId(2)); // Then assertThat(stateMachine.CurrentState, equalTo(HighAvailabilityMemberState.Pending)); assertThat(probe.InstanceStopsConflict, @is(false)); assertThat(probe.InstanceDetachedConflict, @is(true)); verify(guard, times(1)).require(any(typeof(AvailabilityRequirement))); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void whenInMasterStateLosingQuorumFromTwoInstancesShouldRemainMaster() public virtual void WhenInMasterStateLosingQuorumFromTwoInstancesShouldRemainMaster() { // Given InstanceId me = new InstanceId(1); InstanceId other = new InstanceId(2); HighAvailabilityMemberContext context = new SimpleHighAvailabilityMemberContext(me, false); AvailabilityGuard guard = mock(typeof(DatabaseAvailabilityGuard)); ObservedClusterMembers members = MockClusterMembers(me, emptyList(), singletonList(other)); ClusterMemberEvents events = mock(typeof(ClusterMemberEvents)); ClusterMemberListenerContainer memberListenerContainer = MockAddClusterMemberListener(events); HighAvailabilityMemberStateMachine stateMachine = BuildMockedStateMachine(context, events, members, guard); stateMachine.Init(); ClusterMemberListener memberListener = memberListenerContainer.Get(); HAStateChangeListener probe = new HAStateChangeListener(); stateMachine.AddHighAvailabilityMemberListener(probe); // Send it to MASTER memberListener.CoordinatorIsElected(me); memberListener.MemberIsAvailable(MASTER, me, URI.create("ha://whatever"), StoreId.DEFAULT); assertThat(stateMachine.CurrentState, equalTo(HighAvailabilityMemberState.Master)); // When memberListener.MemberIsFailed(new InstanceId(2)); // Then assertThat(stateMachine.CurrentState, equalTo(HighAvailabilityMemberState.Master)); assertThat(probe.InstanceStopsConflict, @is(false)); assertThat(probe.InstanceDetachedConflict, @is(false)); }