//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldAcceptOnlyFirstRequestWithSameId() public virtual void ShouldAcceptOnlyFirstRequestWithSameId() { // given ReplicatedLockTokenStateMachine stateMachine = new ReplicatedLockTokenStateMachine(new InMemoryStateStorage <ReplicatedLockTokenState>(new ReplicatedLockTokenState())); int firstCandidateId = LockToken.nextCandidateId(stateMachine.CurrentToken().id()); // when stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(member(0), firstCandidateId), 1, r => { }); stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(member(1), firstCandidateId), 2, r => { }); // then assertEquals(0, stateMachine.CurrentToken().id()); assertEquals(member(0), stateMachine.CurrentToken().owner()); // when stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(member(1), firstCandidateId + 1), 3, r => { }); stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(member(0), firstCandidateId + 1), 4, r => { }); // then assertEquals(1, stateMachine.CurrentToken().id()); assertEquals(member(1), stateMachine.CurrentToken().owner()); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldIssueNextLockTokenCandidateId() public virtual void ShouldIssueNextLockTokenCandidateId() { // given ReplicatedLockTokenStateMachine stateMachine = new ReplicatedLockTokenStateMachine(new InMemoryStateStorage <ReplicatedLockTokenState>(new ReplicatedLockTokenState())); int firstCandidateId = LockToken.nextCandidateId(stateMachine.CurrentToken().id()); // when stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(member(0), firstCandidateId), 0, r => { }); // then assertEquals(firstCandidateId + 1, LockToken.nextCandidateId(stateMachine.CurrentToken().id())); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldBeIdempotent() public virtual void ShouldBeIdempotent() { // given EphemeralFileSystemAbstraction fsa = FileSystemRule.get(); fsa.Mkdir(TestDir.directory()); StateMarshal <ReplicatedLockTokenState> marshal = new ReplicatedLockTokenState.Marshal(new MemberId.Marshal()); DurableStateStorage <ReplicatedLockTokenState> storage = new DurableStateStorage <ReplicatedLockTokenState>(fsa, TestDir.directory(), "state", marshal, 100, NullLogProvider.Instance); using (Lifespan lifespan = new Lifespan(storage)) { ReplicatedLockTokenStateMachine stateMachine = new ReplicatedLockTokenStateMachine(storage); MemberId memberA = member(0); MemberId memberB = member(1); stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(memberA, 0), 3, r => { }); // when stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(memberB, 1), 2, r => { }); // then assertEquals(memberA, stateMachine.CurrentToken().owner()); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldStartWithInvalidTokenId() public virtual void ShouldStartWithInvalidTokenId() { // given ReplicatedLockTokenStateMachine stateMachine = new ReplicatedLockTokenStateMachine(new InMemoryStateStorage <ReplicatedLockTokenState>(new ReplicatedLockTokenState())); // when int initialTokenId = stateMachine.CurrentToken().id(); // then assertEquals(initialTokenId, LockToken_Fields.INVALID_LOCK_TOKEN_ID); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldSetInitialPendingRequestToInitialState() public virtual void ShouldSetInitialPendingRequestToInitialState() { // Given //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @SuppressWarnings("unchecked") org.neo4j.causalclustering.core.state.storage.StateStorage<ReplicatedLockTokenState> storage = mock(org.neo4j.causalclustering.core.state.storage.StateStorage.class); StateStorage <ReplicatedLockTokenState> storage = mock(typeof(StateStorage)); MemberId initialHoldingCoreMember = member(0); ReplicatedLockTokenState initialState = new ReplicatedLockTokenState(123, new ReplicatedLockTokenRequest(initialHoldingCoreMember, 3)); when(storage.InitialState).thenReturn(initialState); // When ReplicatedLockTokenStateMachine stateMachine = new ReplicatedLockTokenStateMachine(storage); // Then LockToken initialToken = stateMachine.CurrentToken(); assertEquals(initialState.Get().owner(), initialToken.Owner()); assertEquals(initialState.Get().id(), initialToken.Id()); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldOnlyAcceptNextImmediateId() public virtual void ShouldOnlyAcceptNextImmediateId() { // given ReplicatedLockTokenStateMachine stateMachine = new ReplicatedLockTokenStateMachine(new InMemoryStateStorage <ReplicatedLockTokenState>(new ReplicatedLockTokenState())); int firstCandidateId = LockToken.nextCandidateId(stateMachine.CurrentToken().id()); // when stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(member(0), firstCandidateId + 1), 1, r => { }); // not accepted // then assertEquals(stateMachine.CurrentToken().id(), LockToken_Fields.INVALID_LOCK_TOKEN_ID); // when stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(member(0), firstCandidateId), 2, r => { }); // accepted // then assertEquals(stateMachine.CurrentToken().id(), firstCandidateId); // when stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(member(0), firstCandidateId + 1), 3, r => { }); // accepted // then assertEquals(stateMachine.CurrentToken().id(), firstCandidateId + 1); // when stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(member(0), firstCandidateId), 4, r => { }); // not accepted // then assertEquals(stateMachine.CurrentToken().id(), firstCandidateId + 1); // when stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(member(0), firstCandidateId + 3), 5, r => { }); // not accepted // then assertEquals(stateMachine.CurrentToken().id(), firstCandidateId + 1); }