package JUnit; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import java.io.IOException; import org.junit.Test; import protocol.ProtoHead; import protocol.Msg.GetUserInfoMsg; import protocol.Msg.GetUserInfoMsg.GetUserInfoRsp; import protocol.Msg.LoginMsg.LoginRsp; import server.NetworkPacket; /** * 对获取用户信息的测试 * @author wangfei * */ public class TestGetUserInfo { /** * 测获取用户信息 * @author wangfei * @throws IOException */ @Test public void testGetUserInfo() throws IOException{ String user1="a3",password1="aa",targetUserId="1"; System.out.println("TestGetPersonalInfo1:获取用户信息"); GetUserInfoRsp getUserInfoRsp1 = getResponse(user1,password1,targetUserId); System.out.println("服务器返回结果:"+getUserInfoRsp1.getResultCode().toString()); assertEquals(getUserInfoRsp1.getResultCode().getNumber(),GetUserInfoRsp.ResultCode.SUCCESS_VALUE); } private GetUserInfoRsp getResponse(String user,String password,String targetUserId) throws IOException { ClientSocket clientSocket = new ClientSocket(); byte[] response; // 登陆 if (clientSocket.login(user, password) != LoginRsp.ResultCode.SUCCESS) fail("登陆结果错误!"); GetUserInfoMsg.GetUserInfoReq.Builder builder = GetUserInfoMsg.GetUserInfoReq.newBuilder(); builder.addTargetUserId(targetUserId); byte[] byteArray = NetworkPacket.packMessage(ProtoHead.ENetworkMessage.GET_USERINFO_REQ.getNumber(), builder.build() .toByteArray()); //发消息 clientSocket.writeToServer(byteArray); //接收回复 while (true) { response = clientSocket.readFromServerWithoutKeepAlive(); ProtoHead.ENetworkMessage type = NetworkPacket.getMessageType(response); if(ProtoHead.ENetworkMessage.GET_USERINFO_RSP != type) continue; GetUserInfoRsp getUserInfoFriendRsp = GetUserInfoRsp.parseFrom(NetworkPacket.getMessageObjectBytes(response)); clientSocket.close(); return getUserInfoFriendRsp; } } }