//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 shouldReleaseSessionWhenFinished() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: internal virtual void ShouldReleaseSessionWhenFinished() { // given 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); Thread replicatingThread = replicatingThread(replicator, content, true); // when replicatingThread.Start(); // then assertEventually("making progress", () => capturedProgress.Last, not(equalTo(null)), DEFAULT_TIMEOUT_MS, MILLISECONDS); assertEquals(1, _sessionPool.openSessionCount()); // when capturedProgress.Last.setReplicated(); capturedProgress.Last.futureResult().complete(5); replicatingThread.Join(DEFAULT_TIMEOUT_MS); // then assertEquals(0, _sessionPool.openSessionCount()); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test void shouldResendAfterTimeout() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: internal virtual void ShouldResendAfterTimeout() { // 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); Thread replicatingThread = replicatingThread(replicator, content, false); // when replicatingThread.Start(); // then assertEventually("send count", () => outbound.Count, greaterThan(2), DEFAULT_TIMEOUT_MS, MILLISECONDS); // cleanup capturedProgress.Last.setReplicated(); replicatingThread.Join(DEFAULT_TIMEOUT_MS); verify(replicationMonitor, times(1)).startReplication(); verify(replicationMonitor, atLeast(2)).replicationAttempt(); verify(replicationMonitor, times(1)).successfulReplication(); verify(replicationMonitor, never()).failedReplication(any()); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test void shouldFailIfNoLeaderIsAvailable() internal virtual void ShouldFailIfNoLeaderIsAvailable() { // given 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()); ReplicatedInteger content = ReplicatedInteger.valueOf(5); // when assertThrows(typeof(ReplicationFailureException), () => replicator.Replicate(content, true)); }
//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))); }