package lsr.paxos;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.nio.ByteBuffer;
import java.util.Deque;
import lsr.common.Request;
import lsr.common.RequestId;
import org.junit.Test;
public class BatcherImplTest {
@Test
public void shouldUnPackRequests() {
Batcher batcher = new BatcherImpl();
Request request1 = new Request(new RequestId(1, 2), new byte[] {1, 2, 3});
Request request2 = new Request(new RequestId(3, 4), new byte[] {1, 2, 3, 4});
ByteBuffer buffer = ByteBuffer.allocate(4 + request1.byteSize() + request2.byteSize());
buffer.putInt(2);
request1.writeTo(buffer);
request2.writeTo(buffer);
Deque<Request> requests = batcher.unpack(buffer.array());
Request actual1 = requests.pollFirst();
Request actual2 = requests.pollFirst();
assertTrue(requests.isEmpty());
assertEquals(request1, actual1);
assertEquals(request2, actual2);
}
}