//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public static ReplicatedLockTokenRequest unmarshal(org.neo4j.storageengine.api.ReadableChannel channel) throws java.io.IOException, org.neo4j.causalclustering.messaging.EndOfStreamException public static ReplicatedLockTokenRequest Unmarshal(ReadableChannel channel) { int candidateId = channel.Int; MemberId owner = (new MemberId.Marshal()).unmarshal(channel); return(new ReplicatedLockTokenRequest(owner, candidateId)); }
public ClusteringModule(DiscoveryServiceFactory discoveryServiceFactory, MemberId myself, PlatformModule platformModule, File clusterStateDirectory, DatabaseLayout databaseLayout) { LifeSupport life = platformModule.Life; Config config = platformModule.Config; LogProvider logProvider = platformModule.Logging.InternalLogProvider; LogProvider userLogProvider = platformModule.Logging.UserLogProvider; Dependencies dependencies = platformModule.Dependencies; Monitors monitors = platformModule.Monitors; FileSystemAbstraction fileSystem = platformModule.FileSystem; RemoteMembersResolver remoteMembersResolver = chooseResolver(config, platformModule.Logging); _topologyService = discoveryServiceFactory.CoreTopologyService(config, myself, platformModule.JobScheduler, logProvider, userLogProvider, remoteMembersResolver, ResolveStrategy(config, logProvider), monitors); life.Add(_topologyService); dependencies.SatisfyDependency(_topologyService); // for tests CoreBootstrapper coreBootstrapper = new CoreBootstrapper(databaseLayout, platformModule.PageCache, fileSystem, config, logProvider, platformModule.Monitors); SimpleStorage <ClusterId> clusterIdStorage = new SimpleFileStorage <ClusterId>(fileSystem, clusterStateDirectory, CLUSTER_ID_NAME, new ClusterId.Marshal(), logProvider); SimpleStorage <DatabaseName> dbNameStorage = new SimpleFileStorage <DatabaseName>(fileSystem, clusterStateDirectory, DB_NAME, new DatabaseName.Marshal(), logProvider); string dbName = config.Get(CausalClusteringSettings.database); int minimumCoreHosts = config.Get(CausalClusteringSettings.minimum_core_cluster_size_at_formation); Duration clusterBindingTimeout = config.Get(CausalClusteringSettings.cluster_binding_timeout); _clusterBinder = new ClusterBinder(clusterIdStorage, dbNameStorage, _topologyService, Clocks.systemClock(), () => sleep(100), clusterBindingTimeout, coreBootstrapper, dbName, minimumCoreHosts, platformModule.Monitors); }
public virtual bool Update(MemberId votedFor, long term) { if (TermChanged(term)) { this._votedFor = votedFor; this._term = term; return(true); } else { if (this._votedFor == null) { if (votedFor != null) { this._votedFor = votedFor; return(true); } } else if (!this._votedFor.Equals(votedFor)) { throw new System.ArgumentException("Can only vote once per term."); } return(false); } }
public ReplicatedIdAllocationRequest(MemberId owner, IdType idType, long idRangeStart, int idRangeLength) { this._owner = owner; this._idType = idType; this._idRangeStart = idRangeStart; this._idRangeLength = idRangeLength; }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldThrowExceptionForHalfWrittenInstance() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldThrowExceptionForHalfWrittenInstance() { // given // a CoreMember and a ByteBuffer to write it to MemberId.Marshal marshal = new MemberId.Marshal(); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId aRealMember = new org.neo4j.causalclustering.identity.MemberId(java.util.UUID.randomUUID()); MemberId aRealMember = new MemberId(System.Guid.randomUUID()); ByteBuf buffer = Unpooled.buffer(1000); // and the CoreMember is serialized but for 5 bytes at the end marshal.MarshalConflict(aRealMember, new BoundedNetworkWritableChannel(buffer)); ByteBuf bufferWithMissingBytes = buffer.copy(0, buffer.writerIndex() - 5); // when try { marshal.Unmarshal(new NetworkReadableClosableChannelNetty4(bufferWithMissingBytes)); fail("Should have thrown exception"); } catch (EndOfStreamException) { // expected } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldNeverReuseWhenNotLeader() public virtual void ShouldNeverReuseWhenNotLeader() { MemberId someoneElse = new MemberId(System.Guid.randomUUID()); _idReusabilityCondition.onLeaderSwitch(new LeaderInfo(someoneElse, 1)); assertFalse(_idReusabilityCondition.AsBoolean); }
internal CountedSelectionStrategy(UpstreamStrategyAddressSupplierTest outerInstance, MemberId upstreamDatabase, int numberOfIterations) : base(typeof(CountedSelectionStrategy).FullName) { //JAVA TO C# CONVERTER WARNING: The .NET Type.FullName property will not always yield results identical to the Java Class.getName method: this._outerInstance = outerInstance; this.UpstreamDatabaseConflict = upstreamDatabase; this.NumberOfIterations = numberOfIterations; }
public IdReusabilityCondition(CommandIndexTracker commandIndexTracker, RaftMachine raftMachine, MemberId myself) { this._commandIndexTracker = commandIndexTracker; this._raftMachine = raftMachine; this._myself = myself; raftMachine.RegisterListener(this); }
public virtual Optional <CatchupServerAddress> Find(MemberId upstream) { Optional <CatchupServerAddress> coreCatchupAddress = _coreTopology.find(upstream).map(a => ( CatchupServerAddress )a); Optional <CatchupServerAddress> readCatchupAddress = _readReplicaTopology.find(upstream).map(a => ( CatchupServerAddress )a); return(coreCatchupAddress.map(Optional.of).orElse(readCatchupAddress)); }
//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 shouldNotIssueLocksOnNonLeader() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldNotIssueLocksOnNonLeader() { // given MemberId me = member(0); MemberId leader = member(1); ReplicatedLockTokenStateMachine replicatedLockStateMachine = new ReplicatedLockTokenStateMachine(new InMemoryStateStorage(new ReplicatedLockTokenState())); DirectReplicator replicator = new DirectReplicator(replicatedLockStateMachine); LeaderLocator leaderLocator = mock(typeof(LeaderLocator)); when(leaderLocator.Leader).thenReturn(leader); Locks locks = mock(typeof(Locks)); Org.Neo4j.Kernel.impl.locking.Locks_Client client = mock(typeof(Org.Neo4j.Kernel.impl.locking.Locks_Client)); when(locks.NewClient()).thenReturn(client); LeaderOnlyLockManager lockManager = new LeaderOnlyLockManager(me, replicator, leaderLocator, locks, replicatedLockStateMachine); // when Org.Neo4j.Kernel.impl.locking.Locks_Client lockClient = lockManager.NewClient(); try { lockClient.AcquireExclusive(LockTracer.NONE, ResourceTypes.NODE, 0L); fail("Should have thrown exception"); } catch (AcquireLockTimeoutException) { // expected } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: private void commit(ClusterState clusterState, org.neo4j.causalclustering.identity.MemberId member, long commitIndex) throws java.io.IOException private void Commit(ClusterState clusterState, MemberId member, long commitIndex) { ComparableRaftState state = clusterState.States[member]; Outcome outcome = new Outcome(clusterState.Roles[member], state); outcome.CommitIndex = commitIndex; state.Update(outcome); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public ReplicatedLockTokenState unmarshal0(org.neo4j.storageengine.api.ReadableChannel channel) throws java.io.IOException, org.neo4j.causalclustering.messaging.EndOfStreamException public override ReplicatedLockTokenState Unmarshal0(ReadableChannel channel) { long logIndex = channel.Long; int candidateId = channel.Int; MemberId member = MemberMarshal.unmarshal(channel); return(new ReplicatedLockTokenState(logIndex, new ReplicatedLockTokenRequest(member, candidateId))); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldHandleMixedChangeToExistingRaftGroup() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldHandleMixedChangeToExistingRaftGroup() { DirectNetworking net = new DirectNetworking(); // given //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId leader = member(0); MemberId leader = member(0); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId stable = member(1); MemberId stable = member(1); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId toBeRemoved1 = member(2); MemberId toBeRemoved1 = member(2); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId toBeRemoved2 = member(3); MemberId toBeRemoved2 = member(3); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId toBeAdded1 = member(4); MemberId toBeAdded1 = member(4); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId toBeAdded2 = member(5); MemberId toBeAdded2 = member(5); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId[] everyone = {leader, stable, toBeRemoved1, toBeRemoved2, toBeAdded1, toBeAdded2}; MemberId[] everyone = new MemberId[] { leader, stable, toBeRemoved1, toBeRemoved2, toBeAdded1, toBeAdded2 }; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId[] initialMembers = {leader, stable, toBeRemoved1, toBeRemoved2}; MemberId[] initialMembers = new MemberId[] { leader, stable, toBeRemoved1, toBeRemoved2 }; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId[] finalMembers = {leader, stable, toBeAdded1, toBeAdded2}; MemberId[] finalMembers = new MemberId[] { leader, stable, toBeAdded1, toBeAdded2 }; RaftTestFixture fixture = new RaftTestFixture(net, 3, everyone); fixture.Bootstrap(initialMembers); fixture.Members().withId(leader).timerService().invoke(ELECTION); net.ProcessMessages(); // when fixture.Members().withId(leader).raftInstance().TargetMembershipSet = (new RaftTestGroup(finalMembers)).Members; net.ProcessMessages(); fixture.Members().withId(leader).timerService().invoke(HEARTBEAT); net.ProcessMessages(); fixture.Members().withId(leader).timerService().invoke(HEARTBEAT); net.ProcessMessages(); fixture.Members().withId(leader).timerService().invoke(HEARTBEAT); net.ProcessMessages(); // then assertThat(fixture.Members().withIds(finalMembers), HasCurrentMembers(new RaftTestGroup(finalMembers))); assertEquals(fixture.MessageLog(), 1, fixture.Members().withIds(finalMembers).withRole(LEADER).size()); assertEquals(fixture.MessageLog(), 3, fixture.Members().withIds(finalMembers).withRole(FOLLOWER).size()); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldAddMultipleInstancesToExistingRaftGroup() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldAddMultipleInstancesToExistingRaftGroup() { // given DirectNetworking net = new DirectNetworking(); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId leader = member(0); MemberId leader = member(0); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId stable1 = member(1); MemberId stable1 = member(1); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId stable2 = member(2); MemberId stable2 = member(2); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId toBeAdded1 = member(3); MemberId toBeAdded1 = member(3); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId toBeAdded2 = member(4); MemberId toBeAdded2 = member(4); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId toBeAdded3 = member(5); MemberId toBeAdded3 = member(5); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId[] initialMembers = {leader, stable1, stable2}; MemberId[] initialMembers = new MemberId[] { leader, stable1, stable2 }; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId[] finalMembers = {leader, stable1, stable2, toBeAdded1, toBeAdded2, toBeAdded3}; MemberId[] finalMembers = new MemberId[] { leader, stable1, stable2, toBeAdded1, toBeAdded2, toBeAdded3 }; RaftTestFixture fixture = new RaftTestFixture(net, 3, finalMembers); fixture.Bootstrap(initialMembers); fixture.Members().withId(leader).timerService().invoke(ELECTION); net.ProcessMessages(); // when fixture.Members().TargetMembershipSet = (new RaftTestGroup(finalMembers)).Members; net.ProcessMessages(); // We need a heartbeat for every member we add. It is necessary to have the new members report their state // so their membership change can be processed. We can probably do better here. fixture.Members().withId(leader).timerService().invoke(HEARTBEAT); net.ProcessMessages(); fixture.Members().withId(leader).timerService().invoke(HEARTBEAT); net.ProcessMessages(); fixture.Members().withId(leader).timerService().invoke(HEARTBEAT); net.ProcessMessages(); // then assertThat(fixture.MessageLog(), fixture.Members().withIds(finalMembers), HasCurrentMembers(new RaftTestGroup(finalMembers))); assertEquals(fixture.MessageLog(), 1, fixture.Members().withRole(LEADER).size()); assertEquals(fixture.MessageLog(), 5, fixture.Members().withRole(FOLLOWER).size()); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public java.util.Optional<org.neo4j.causalclustering.identity.MemberId> upstreamDatabase() throws org.neo4j.causalclustering.upstream.UpstreamDatabaseSelectionException public override Optional <MemberId> UpstreamDatabase() { MemberId consumed = UpstreamDatabaseConflict; NumberOfIterations--; if (NumberOfIterations < 0) { UpstreamDatabaseConflict = null; } return(Optional.ofNullable(consumed)); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public VoteState unmarshal0(org.neo4j.storageengine.api.ReadableChannel channel) throws java.io.IOException, org.neo4j.causalclustering.messaging.EndOfStreamException public override VoteState Unmarshal0(ReadableChannel channel) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final long term = channel.getLong(); long term = channel.Long; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId member = memberMarshal.unmarshal(channel); MemberId member = MemberMarshal.unmarshal(channel); return(new VoteState(member, term)); }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected: //ORIGINAL LINE: public static RaftMessages_RaftMessage messageFor(org.neo4j.causalclustering.core.consensus.outcome.Outcome outcome, final org.neo4j.causalclustering.identity.MemberId member) public static RaftMessages_RaftMessage MessageFor(Outcome outcome, MemberId member) { System.Predicate <RaftMessages_Directed> selectMember = message => message.to() == member; try { return(Iterables.single(new FilteringIterable <>(outcome.OutgoingMessages, selectMember)).message()); } catch (NoSuchElementException) { throw new AssertionError(format("Expected message for %s, but outcome only contains %s.", member, outcome.OutgoingMessages)); } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public org.neo4j.helpers.AdvertisedSocketAddress primary() throws CatchupAddressResolutionException public override AdvertisedSocketAddress Primary() { try { MemberId leadMember = LeaderLocator.Leader; return(TopologyService.findCatchupAddress(leadMember).orElseThrow(() => new CatchupAddressResolutionException(leadMember))); } catch (NoLeaderFoundException e) { throw new CatchupAddressResolutionException(e); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldStoreVote() public virtual void ShouldStoreVote() { // given VoteState voteState = new VoteState(); MemberId member = new MemberId(System.Guid.randomUUID()); // when voteState.Update(member, 0); // then assertEquals(member, voteState.VotedFor()); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: private static boolean shouldVoteFor(org.neo4j.causalclustering.core.consensus.state.ReadableRaftState state, org.neo4j.causalclustering.core.consensus.outcome.Outcome outcome, org.neo4j.causalclustering.core.consensus.RaftMessages_AnyVote_Request voteRequest, boolean committedToVotingForAnother, org.neo4j.logging.Log log) throws java.io.IOException private static bool ShouldVoteFor(ReadableRaftState state, Outcome outcome, Org.Neo4j.causalclustering.core.consensus.RaftMessages_AnyVote_Request voteRequest, bool committedToVotingForAnother, Log log) { long requestTerm = voteRequest.Term(); MemberId candidate = voteRequest.Candidate(); long requestLastLogTerm = voteRequest.LastLogTerm(); long requestLastLogIndex = voteRequest.LastLogIndex(); long contextTerm = outcome.Term; long contextLastAppended = state.EntryLog().appendIndex(); long contextLastLogTerm = state.EntryLog().readEntryTerm(contextLastAppended); return(ShouldVoteFor(candidate, contextTerm, requestTerm, contextLastLogTerm, requestLastLogTerm, contextLastAppended, requestLastLogIndex, committedToVotingForAnother, log)); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public static org.neo4j.causalclustering.messaging.marshalling.ContentBuilder<ReplicatedContent> deserialize(org.neo4j.storageengine.api.ReadableChannel channel) throws java.io.IOException, org.neo4j.causalclustering.messaging.EndOfStreamException public static ContentBuilder <ReplicatedContent> Deserialize(ReadableChannel channel) { long mostSigBits = channel.Long; long leastSigBits = channel.Long; MemberId owner = (new MemberId.Marshal()).unmarshal(channel); GlobalSession globalSession = new GlobalSession(new System.Guid(mostSigBits, leastSigBits), owner); long localSessionId = channel.Long; long sequenceNumber = channel.Long; LocalOperationId localOperationId = new LocalOperationId(localSessionId, sequenceNumber); return(ContentBuilder.unfinished(subContent => new DistributedOperation(subContent, globalSession, localOperationId))); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldRemoveLeaderAndAddItBackIn() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldRemoveLeaderAndAddItBackIn() { DirectNetworking net = new DirectNetworking(); // given //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId leader1 = member(0); MemberId leader1 = member(0); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId leader2 = member(1); MemberId leader2 = member(1); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId stable1 = member(2); MemberId stable1 = member(2); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId stable2 = member(3); MemberId stable2 = member(3); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId[] allMembers = {leader1, leader2, stable1, stable2}; MemberId[] allMembers = new MemberId[] { leader1, leader2, stable1, stable2 }; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.causalclustering.identity.MemberId[] fewerMembers = {leader2, stable1, stable2}; MemberId[] fewerMembers = new MemberId[] { leader2, stable1, stable2 }; RaftTestFixture fixture = new RaftTestFixture(net, 3, allMembers); fixture.Bootstrap(allMembers); // when fixture.Members().withId(leader1).timerService().invoke(ELECTION); net.ProcessMessages(); fixture.Members().withId(leader1).raftInstance().setTargetMembershipSet(new RaftTestGroup(fewerMembers) .Members); net.ProcessMessages(); fixture.Members().withId(leader2).timerService().invoke(ELECTION); net.ProcessMessages(); fixture.Members().withId(leader2).raftInstance().setTargetMembershipSet(new RaftTestGroup(allMembers) .Members); net.ProcessMessages(); fixture.Members().withId(leader2).timerService().invoke(HEARTBEAT); net.ProcessMessages(); // then assertTrue(fixture.MessageLog(), fixture.Members().withId(leader2).raftInstance().Leader); assertThat(fixture.MessageLog(), fixture.Members().withIds(allMembers), HasCurrentMembers(new RaftTestGroup(allMembers))); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldClearVote() public virtual void ShouldClearVote() { // given VoteState voteState = new VoteState(); MemberId member = new MemberId(System.Guid.randomUUID()); voteState.Update(member, 0); // when voteState.Update(null, 1); // then assertNull(voteState.VotedFor()); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldLogFirstFailure() public virtual void ShouldLogFirstFailure() { // given Log log = mock(typeof(Log)); UnknownAddressMonitor logger = new UnknownAddressMonitor(log, TestClock(), 100); // when MemberId to = member(0); logger.LogAttemptToSendToMemberWithNoKnownAddress(to); // then verify(log).info(format("No address found for %s, probably because the member has been shut down.", to)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldReportNoUpdateWhenVoteStateUnchanged() public virtual void ShouldReportNoUpdateWhenVoteStateUnchanged() { // given VoteState voteState = new VoteState(); MemberId member1 = new MemberId(System.Guid.randomUUID()); MemberId member2 = new MemberId(System.Guid.randomUUID()); // when assertTrue(voteState.Update(null, 0)); assertFalse(voteState.Update(null, 0)); assertTrue(voteState.Update(member1, 0)); assertFalse(voteState.Update(member1, 0)); assertTrue(voteState.Update(member2, 1)); assertFalse(voteState.Update(member2, 1)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldWriteAndReadState() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldWriteAndReadState() { // given SimpleStorage <MemberId> storage = new SimpleFileStorage <MemberId>(Fsa.get(), new File("state-dir"), "member-id-a", new MemberId.Marshal(), NullLogProvider.Instance); // when MemberId idA = new MemberId(System.Guid.randomUUID()); storage.WriteState(idA); MemberId idB = storage.ReadState(); // then assertEquals(idA.Uuid, idB.Uuid); assertEquals(idA, idB); }
internal RaftLogShipper(Outbound <MemberId, Org.Neo4j.causalclustering.core.consensus.RaftMessages_RaftMessage> outbound, LogProvider logProvider, ReadableRaftLog raftLog, Clock clock, TimerService timerService, MemberId leader, MemberId follower, long leaderTerm, long leaderCommit, long retryTimeMillis, int catchupBatchSize, int maxAllowedShippingLag, InFlightCache inFlightCache) { this._outbound = outbound; this._timerService = timerService; this._catchupBatchSize = catchupBatchSize; this._maxAllowedShippingLag = maxAllowedShippingLag; this._log = logProvider.getLog(this.GetType()); this._raftLog = raftLog; this._clock = clock; this._follower = follower; this._leader = leader; this._retryTimeMillis = retryTimeMillis; this._lastLeaderContext = new LeaderContext(leaderTerm, leaderCommit); this._inFlightCache = inFlightCache; }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldEncodeAndDecodeNewEntryRequest() public virtual void ShouldEncodeAndDecodeNewEntryRequest() { // given MemberId member = new MemberId(System.Guid.randomUUID()); Org.Neo4j.causalclustering.core.consensus.RaftMessages_NewEntry_Request request = new Org.Neo4j.causalclustering.core.consensus.RaftMessages_NewEntry_Request(member, ReplicatedInteger.valueOf(12)); // when _channel.writeOutbound(request); object message = _channel.readOutbound(); _channel.writeInbound(message); // then assertEquals(request, _channel.readInbound()); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldEncodeAndDecodeAppendEntriesResponse() public virtual void ShouldEncodeAndDecodeAppendEntriesResponse() { // given MemberId member = new MemberId(System.Guid.randomUUID()); Org.Neo4j.causalclustering.core.consensus.RaftMessages_AppendEntries_Response response = new Org.Neo4j.causalclustering.core.consensus.RaftMessages_AppendEntries_Response(member, 1, false, -1, 0); // when _channel.writeOutbound(response); object message = _channel.readOutbound(); _channel.writeInbound(message); // then assertEquals(response, _channel.readInbound()); }