package lsr.common;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import java.nio.ByteBuffer;
import lsr.common.ClientCommand.CommandType;
import org.junit.Test;
public class ClientCommandTest {
@Test
public void shouldInitialize() {
RequestId requestId = new RequestId(1, 1);
Request request = new Request(requestId, new byte[] {1, 2, 3});
ClientCommand command = new ClientCommand(CommandType.REQUEST, request);
assertEquals(CommandType.REQUEST, command.getCommandType());
assertEquals(request, command.getRequest());
}
@Test
public void shouldSerializeAndDeserialize() {
RequestId requestId = new RequestId(1, 1);
Request request = new Request(requestId, new byte[] {1, 2, 3});
ClientCommand command = new ClientCommand(CommandType.REQUEST, request);
ByteBuffer byteBuffer = ByteBuffer.allocate(command.byteSize());
command.writeTo(byteBuffer);
assertFalse(byteBuffer.hasRemaining());
byteBuffer.rewind();
ClientCommand actual = new ClientCommand(byteBuffer);
assertEquals(command.getCommandType(), actual.getCommandType());
assertEquals(command.getRequest(), actual.getRequest());
}
}