package com.cwa.protobuf; import com.cwa.gamecore.io.ByteArrayGameInput; import com.cwa.gamecore.io.ByteArrayGameOutput; import com.cwa.tribe.messages.Login; import com.cwa.tribe.messages.MsgId; import java.io.ByteArrayOutputStream; import junit.framework.Assert; import org.junit.BeforeClass; import org.junit.Test; public class ProtobufGameMessageTest { @BeforeClass public static void register() { ProtobufSupport.register(MsgId.MsgID.MSG_LOGIN_VALUE, Login.LoginRequest.PARSER, null); } @Test public void decodeProtobufMessage() throws Exception { Login.LoginRequest req = Login.LoginRequest.newBuilder() .setMsgID(MsgId.MsgID.MSG_LOGIN) .setUsername("zxh") .setPassword("p4wd") .build(); ByteArrayOutputStream os = new ByteArrayOutputStream(); req.writeTo(os); ByteArrayGameOutput gameOut = new ByteArrayGameOutput(); gameOut.putBytes(os.toByteArray()); ProtobufGameMessage gameMessage = new ProtobufGameMessage(); gameMessage.decodeBody(new ByteArrayGameInput(gameOut.toByteArray())); Assert.assertNotNull(gameMessage.getMessage()); Login.LoginRequest req2 = (Login.LoginRequest) gameMessage.getMessage(); Assert.assertEquals(req2.getUsername(), "zxh"); Assert.assertEquals(req2.getPassword(), "p4wd"); } }