//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test void stopReplicationOnShutdown() throws InterruptedException //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: internal virtual void StopReplicationOnShutdown() { // given Monitors monitors = new Monitors(); ReplicationMonitor replicationMonitor = mock(typeof(ReplicationMonitor)); monitors.AddMonitorListener(replicationMonitor); CapturingProgressTracker capturedProgress = new CapturingProgressTracker(this); CapturingOutbound <Org.Neo4j.causalclustering.core.consensus.RaftMessages_RaftMessage> outbound = new CapturingOutbound <Org.Neo4j.causalclustering.core.consensus.RaftMessages_RaftMessage>(); RaftReplicator replicator = GetReplicator(outbound, capturedProgress, monitors); replicator.OnLeaderSwitch(_leaderInfo); ReplicatedInteger content = ReplicatedInteger.valueOf(5); ReplicatingThread replicatingThread = replicatingThread(replicator, content, true); // when replicatingThread.Start(); _databaseAvailabilityGuard.shutdown(); replicatingThread.Join(); assertThat(replicatingThread.ReplicationException.InnerException, Matchers.instanceOf(typeof(UnavailableException))); verify(replicationMonitor, times(1)).startReplication(); verify(replicationMonitor, atLeast(1)).replicationAttempt(); verify(replicationMonitor, never()).successfulReplication(); verify(replicationMonitor, times(1)).failedReplication(any()); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test void stopReplicationWhenUnHealthy() throws InterruptedException //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: internal virtual void StopReplicationWhenUnHealthy() { CapturingProgressTracker capturedProgress = new CapturingProgressTracker(this); CapturingOutbound <Org.Neo4j.causalclustering.core.consensus.RaftMessages_RaftMessage> outbound = new CapturingOutbound <Org.Neo4j.causalclustering.core.consensus.RaftMessages_RaftMessage>(); RaftReplicator replicator = GetReplicator(outbound, capturedProgress, new Monitors()); replicator.OnLeaderSwitch(_leaderInfo); ReplicatedInteger content = ReplicatedInteger.valueOf(5); ReplicatingThread replicatingThread = replicatingThread(replicator, content, true); // when replicatingThread.Start(); _databaseHealth.panic(new System.InvalidOperationException("PANIC")); replicatingThread.Join(); Assertions.assertNotNull(replicatingThread.ReplicationException); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test void stopReplicationWhenUnavailable() throws InterruptedException //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: internal virtual void StopReplicationWhenUnavailable() { CapturingProgressTracker capturedProgress = new CapturingProgressTracker(this); CapturingOutbound <Org.Neo4j.causalclustering.core.consensus.RaftMessages_RaftMessage> outbound = new CapturingOutbound <Org.Neo4j.causalclustering.core.consensus.RaftMessages_RaftMessage>(); RaftReplicator replicator = GetReplicator(outbound, capturedProgress, new Monitors()); replicator.OnLeaderSwitch(_leaderInfo); ReplicatedInteger content = ReplicatedInteger.valueOf(5); ReplicatingThread replicatingThread = replicatingThread(replicator, content, true); // when replicatingThread.Start(); _databaseAvailabilityGuard.require(() => "Database not unavailable"); replicatingThread.Join(); assertThat(replicatingThread.ReplicationException.InnerException, Matchers.instanceOf(typeof(UnavailableException))); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test void shouldSuccessfullySendIfLeaderIsLostAndFound() throws InterruptedException //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: internal virtual void ShouldSuccessfullySendIfLeaderIsLostAndFound() { OneProgressTracker capturedProgress = new OneProgressTracker(this); CapturingOutbound <Org.Neo4j.causalclustering.core.consensus.RaftMessages_RaftMessage> outbound = new CapturingOutbound <Org.Neo4j.causalclustering.core.consensus.RaftMessages_RaftMessage>(); RaftReplicator replicator = GetReplicator(outbound, capturedProgress, new Monitors()); replicator.OnLeaderSwitch(_leaderInfo); ReplicatedInteger content = ReplicatedInteger.valueOf(5); ReplicatingThread replicatingThread = replicatingThread(replicator, content, false); // when replicatingThread.Start(); // then assertEventually("send count", () => outbound.Count, greaterThan(1), DEFAULT_TIMEOUT_MS, MILLISECONDS); replicator.OnLeaderSwitch(new LeaderInfo(null, 1)); capturedProgress.Last.setReplicated(); replicator.OnLeaderSwitch(_leaderInfo); replicatingThread.Join(DEFAULT_TIMEOUT_MS); }