//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 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 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); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldPersistAndRecoverState() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldPersistAndRecoverState() { // given EphemeralFileSystemAbstraction fsa = FileSystemRule.get(); fsa.Mkdir(TestDir.directory()); StateMarshal <ReplicatedLockTokenState> marshal = new ReplicatedLockTokenState.Marshal(new MemberId.Marshal()); MemberId memberA = member(0); MemberId memberB = member(1); int candidateId; 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); // when candidateId = 0; stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(memberA, candidateId), 0, r => { }); candidateId = 1; stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(memberB, candidateId), 1, r => { }); stateMachine.Flush(); fsa.Crash(); } // then DurableStateStorage <ReplicatedLockTokenState> storage2 = new DurableStateStorage <ReplicatedLockTokenState>(fsa, TestDir.directory(), "state", marshal, 100, NullLogProvider.Instance); using (Lifespan lifespan = new Lifespan(storage2)) { ReplicatedLockTokenState initialState = storage2.InitialState; assertEquals(memberB, initialState.Get().owner()); assertEquals(candidateId, initialState.Get().id()); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldKeepTrackOfCurrentLockTokenId() public virtual void ShouldKeepTrackOfCurrentLockTokenId() { // 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 => { }); // then assertEquals(firstCandidateId, stateMachine.CurrentToken().id()); // when stateMachine.ApplyCommand(new ReplicatedLockTokenRequest(member(0), firstCandidateId + 1), 2, r => { }); // then assertEquals(firstCandidateId + 1, stateMachine.CurrentToken().id()); }