package lsr.common;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.nio.ByteBuffer;
import org.junit.Test;
public class RequestTest {
@Test
public void shouldSetFields() {
RequestId requestId = new RequestId(1, 1);
Request request = new Request(requestId, new byte[] {1, 2, 3});
assertEquals(requestId, request.getRequestId());
assertArrayEquals(new byte[] {1, 2, 3}, request.getValue());
}
@Test
public void shouldSerializeAndDeserialize() {
RequestId requestId = new RequestId(1, 1);
Request request = new Request(requestId, new byte[] {1, 2, 3});
ByteBuffer byteBuffer = ByteBuffer.allocate(request.byteSize());
request.writeTo(byteBuffer);
assertFalse(byteBuffer.hasRemaining());
byteBuffer.rewind();
assertEquals(request, Request.create(byteBuffer));
}
@Test
public void shouldEqualToTheSameRequest() {
RequestId requestId1 = new RequestId(1, 1);
Request request1 = new Request(requestId1, new byte[] {1, 2, 3});
RequestId requestId2 = new RequestId(1, 1);
Request request2 = new Request(requestId2, new byte[] {1, 2, 3});
assertTrue(request1.equals(request2));
}
@Test
public void shouldEqualWithItself() {
RequestId requestId = new RequestId(1, 1);
Request request = new Request(requestId, new byte[] {1, 2, 3});
assertTrue(request.equals(request));
}
@Test
public void shouldNotEqualWithDifferentRequest() {
RequestId requestId1 = new RequestId(1, 1);
Request request1 = new Request(requestId1, new byte[] {1, 2, 3});
RequestId requestId2 = new RequestId(2, 1);
Request request2 = new Request(requestId2, new byte[] {1, 2, 3});
assertFalse(request1.equals(request2));
}
@Test
public void shouldNotEqualWithDifferentObject() {
RequestId requestId = new RequestId(1, 1);
Request request = new Request(requestId, new byte[] {1, 2, 3});
assertFalse(request.equals(new Object()));
}
}