コード例 #1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void leaderShouldHandleBatch() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void LeaderShouldHandleBatch()
        {
            // given
            RaftState state = raftState().votingMembers(asSet(_myself, _member1, _member2)).build();

            Leader leader = new Leader();

            const int batchSize = 3;

            Org.Neo4j.causalclustering.core.consensus.RaftMessages_NewEntry_BatchRequest batchRequest = new Org.Neo4j.causalclustering.core.consensus.RaftMessages_NewEntry_BatchRequest(new IList <Org.Neo4j.causalclustering.core.replication.ReplicatedContent> {
                valueOf(0), valueOf(1), valueOf(2)
            });

            // when
            Outcome outcome = leader.Handle(batchRequest, state, Log());

            // then
            BatchAppendLogEntries logCommand = ( BatchAppendLogEntries )single(outcome.LogCommands);

            assertEquals(0, logCommand.BaseIndex);
            for (int i = 0; i < batchSize; i++)
            {
                assertEquals(0, logCommand.Entries[i].term());
                assertEquals(i, (( ReplicatedInteger )logCommand.Entries[i].content()).get());
            }

            ShipCommand.NewEntries shipCommand = (ShipCommand.NewEntries)single(outcome.ShipCommands);

            assertEquals(shipCommand, new ShipCommand.NewEntries(-1, -1, new RaftLogEntry[]
            {
                new RaftLogEntry(0, valueOf(0)),
                new RaftLogEntry(0, valueOf(1)),
                new RaftLogEntry(0, valueOf(2))
            }));
        }
コード例 #2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void leaderShouldDecideToAppendToItsLogAndSendAppendEntriesMessageOnReceiptOfClientProposal() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void LeaderShouldDecideToAppendToItsLogAndSendAppendEntriesMessageOnReceiptOfClientProposal()
        {
            // given
            RaftState state = raftState().votingMembers(asSet(_myself, _member1, _member2)).build();

            Leader leader = new Leader();

            Org.Neo4j.causalclustering.core.consensus.RaftMessages_NewEntry_Request newEntryRequest = new Org.Neo4j.causalclustering.core.consensus.RaftMessages_NewEntry_Request(member(9), _content);

            // when
            Outcome outcome = leader.Handle(newEntryRequest, state, Log());
            //state.update( outcome );

            // then
            AppendLogEntry logCommand = ( AppendLogEntry )single(outcome.LogCommands);

            assertEquals(0, logCommand.Index);
            assertEquals(0, logCommand.Entry.term());

            ShipCommand.NewEntries shipCommand = (ShipCommand.NewEntries)single(outcome.ShipCommands);

            assertEquals(shipCommand, new ShipCommand.NewEntries(-1, -1, new RaftLogEntry[] { new RaftLogEntry(0, _content) }));
        }