Exemplo n.º 1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldNotBatchAppendEntriesDifferentLeaderTerms()
        public virtual void ShouldNotBatchAppendEntriesDifferentLeaderTerms()
        {
            BatchingMessageHandler batchHandler = new BatchingMessageHandler(_downstreamHandler, _inQueueConfig, _batchConfig, _jobSchedulerFactory, NullLogProvider.Instance);

            long leaderTerm   = 1;
            long prevLogIndex = -1;
            long prevLogTerm  = -1;
            long leaderCommit = 0;

            RaftLogEntry[] entriesA = Entries(0, 0, 2);
            RaftLogEntry[] entriesB = Entries(1, 3, 3);

            AppendEntries.Request appendA = new AppendEntries.Request(_leader, leaderTerm, prevLogIndex, prevLogTerm, entriesA, leaderCommit);

            prevLogIndex += appendA.entries().length;
            prevLogTerm   = lastOf(appendA.entries()).term();

            AppendEntries.Request appendB = new AppendEntries.Request(_leader, leaderTerm + 1, prevLogIndex, prevLogTerm, entriesB, leaderCommit);

            batchHandler.Handle(Wrap(appendA));
            batchHandler.Handle(Wrap(appendB));
            verifyZeroInteractions(_downstreamHandler);

            // when
            batchHandler.Run();
            batchHandler.Run();

            // then
            verify(_downstreamHandler).handle(Wrap(appendA));
            verify(_downstreamHandler).handle(Wrap(appendB));
        }
Exemplo n.º 2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldBatchMultipleEntryAppendEntries()
        public virtual void ShouldBatchMultipleEntryAppendEntries()
        {
            BatchingMessageHandler batchHandler = new BatchingMessageHandler(_downstreamHandler, _inQueueConfig, _batchConfig, _jobSchedulerFactory, NullLogProvider.Instance);

            long leaderTerm   = 1;
            long prevLogIndex = -1;
            long prevLogTerm  = -1;
            long leaderCommit = 0;

            RaftLogEntry[] entriesA = Entries(0, 0, 2);
            RaftLogEntry[] entriesB = Entries(1, 3, 3);
            RaftLogEntry[] entriesC = Entries(2, 4, 8);
            RaftLogEntry[] entriesD = Entries(3, 9, 15);

            AppendEntries.Request appendA = new AppendEntries.Request(_leader, leaderTerm, prevLogIndex, prevLogTerm, entriesA, leaderCommit);

            prevLogIndex += appendA.entries().length;
            prevLogTerm   = lastOf(appendA.entries()).term();
            leaderCommit += 2;               // arbitrary

            AppendEntries.Request appendB = new AppendEntries.Request(_leader, leaderTerm, prevLogIndex, prevLogTerm, entriesB, leaderCommit);

            prevLogIndex += appendB.entries().length;
            prevLogTerm   = lastOf(appendB.entries()).term();
            leaderCommit += 5;               // arbitrary

            AppendEntries.Request appendC = new AppendEntries.Request(_leader, leaderTerm, prevLogIndex, prevLogTerm, ArrayUtil.concat(entriesC, entriesD), leaderCommit);

            batchHandler.Handle(Wrap(appendA));
            batchHandler.Handle(Wrap(appendB));
            batchHandler.Handle(Wrap(appendC));
            verifyZeroInteractions(_downstreamHandler);

            // when
            batchHandler.Run();

            // then
            AppendEntries.Request expected = new AppendEntries.Request(_leader, leaderTerm, -1, -1, ArrayUtil.concatArrays(entriesA, entriesB, entriesC, entriesD), leaderCommit);

            verify(_downstreamHandler).handle(Wrap(expected));
        }