package us.b3k.kafka.ws.messages;
import org.junit.Test;
import javax.websocket.DecodeException;
import javax.websocket.EncodeException;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
public class BinaryMessageTest {
public static BinaryMessage.BinaryMessageEncoder encoder = new BinaryMessage.BinaryMessageEncoder();
public static BinaryMessage.BinaryMessageDecoder decoder = new BinaryMessage.BinaryMessageDecoder();
public static byte[] message =
new byte[] { 8, 109, 121, 95, 116, 111, 112, 105, 99, 109,
121, 32, 97, 119, 101, 115, 111, 109, 101, 32,
109, 101, 115, 115, 97, 103, 101 };
@Test
public void binaryToMessage() throws DecodeException, EncodeException, UnsupportedEncodingException {
BinaryMessage binaryMessage = decoder.decode(ByteBuffer.wrap(message));
assertEquals(binaryMessage.getTopic(), "my_topic");
assertEquals(new String(binaryMessage.getMessage()), "my awesome message");
}
@Test
public void messageToBinary() throws EncodeException {
BinaryMessage binaryMessage =
new BinaryMessage("my_topic", "my awesome message".getBytes(Charset.forName("UTF-8")));
assertArrayEquals(encoder.encode(binaryMessage).array(), message);
}
}