Search in sources :

Example 1 with BooleanPaxosResponse

use of com.palantir.paxos.BooleanPaxosResponse in project atlasdb by palantir.

the class AcceptCoalescingFunctionTests method canProcessBatch.

@Test
public void canProcessBatch() {
    PaxosProposal client1seq1Proposal = proposal(1);
    PaxosProposal client1seq2Proposal = proposal(2);
    PaxosProposal client2seq1Proposal = proposal(1);
    SetMultimap<Client, PaxosProposal> requests = ImmutableSetMultimap.<Client, PaxosProposal>builder().put(CLIENT_1, client1seq1Proposal).put(CLIENT_1, client1seq2Proposal).put(CLIENT_2, client2seq1Proposal).build();
    SetMultimap<Client, WithSeq<BooleanPaxosResponse>> remoteResponse = ImmutableSetMultimap.<Client, WithSeq<BooleanPaxosResponse>>builder().put(CLIENT_1, success(client1seq1Proposal)).put(CLIENT_1, failure(client1seq2Proposal)).put(CLIENT_2, success(client2seq1Proposal)).build();
    when(remote.accept(requests)).thenReturn(remoteResponse);
    AcceptCoalescingFunction function = new AcceptCoalescingFunction(remote);
    Map<Map.Entry<Client, PaxosProposal>, BooleanPaxosResponse> result = ImmutableMap.copyOf(function.apply(requests.entries()));
    assertContains(result, CLIENT_1, client1seq1Proposal, success(client1seq1Proposal).value());
    assertContains(result, CLIENT_1, client1seq2Proposal, failure(client1seq2Proposal).value());
    assertContains(result, CLIENT_2, client2seq1Proposal, success(client2seq1Proposal).value());
}
Also used : PaxosProposal(com.palantir.paxos.PaxosProposal) BooleanPaxosResponse(com.palantir.paxos.BooleanPaxosResponse) Client(com.palantir.paxos.Client) Test(org.junit.Test)

Aggregations

BooleanPaxosResponse (com.palantir.paxos.BooleanPaxosResponse)1 Client (com.palantir.paxos.Client)1 PaxosProposal (com.palantir.paxos.PaxosProposal)1 Test (org.junit.Test)1