Exemple #1
0
//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());
        }
Exemple #2
0
//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);
        }
Exemple #3
0
//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)));
        }
Exemple #4
0
//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);
        }