package JUnit;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import java.io.IOException;
import java.net.UnknownHostException;
import org.junit.Test;
import protocol.ProtoHead;
import protocol.Msg.GetPersonalInfoMsg;
import protocol.Msg.GetPersonalInfoMsg.GetPersonalInfoRsp;
import protocol.Msg.LoginMsg.LoginRsp;
import server.NetworkPacket;
public class TestGetPersonalInfo {
/**
* 测获取个人信息
* @throws IOException
* @author wangfei
* @time 2015-03-26
*/
@Test
public void testGetPersonalInfo() throws IOException{
String user1="3",password1="1";
System.out.println("TestGetPersonalInfo1:只获取个人信息");
GetPersonalInfoRsp getPersonalInfoRsp1 = getResponse(user1,password1,true,false,false);
System.out.println("服务器返回结果:"+getPersonalInfoRsp1.getResultCode().toString());
assertEquals(getPersonalInfoRsp1.getResultCode().getNumber(),GetPersonalInfoRsp.ResultCode.SUCCESS_VALUE);
String user2="1",password2="1";
System.out.println("TestGetPersonalInfo2:获取个人信息、好友信息");
GetPersonalInfoRsp getPersonalInfoRsp2 = getResponse(user2,password2,true,true,false);
System.out.println("服务器返回结果:"+getPersonalInfoRsp2.getResultCode().toString());
assertEquals(getPersonalInfoRsp2.getResultCode().getNumber(),GetPersonalInfoRsp.ResultCode.SUCCESS_VALUE);
String user3="a3",password3="aa";
System.out.println("TestGetPersonalInfo3:获取个人信息、好友信息、群聊信息");
GetPersonalInfoRsp getPersonalInfoRsp3 = getResponse(user3,password3,true,true,true);
System.out.println("服务器返回结果:"+getPersonalInfoRsp3.getResultCode().toString());
assertEquals(getPersonalInfoRsp3.getResultCode().getNumber(),GetPersonalInfoRsp.ResultCode.SUCCESS_VALUE);
}
private GetPersonalInfoRsp getResponse(String user,String password,boolean userInfo,boolean friendInfo,boolean groupInfo) throws UnknownHostException, IOException{
ClientSocket clientSocket = new ClientSocket();
byte[] response;
// 登陆
if (clientSocket.login(user, password) != LoginRsp.ResultCode.SUCCESS)
fail("登陆结果错误!");
GetPersonalInfoMsg.GetPersonalInfoReq.Builder builder = GetPersonalInfoMsg.GetPersonalInfoReq.newBuilder();
builder.setUserInfo(userInfo);
builder.setFriendInfo(friendInfo);
builder.setGroupInfo(groupInfo);
byte[] byteArray = NetworkPacket.packMessage(ProtoHead.ENetworkMessage.GET_PERSONALINFO_REQ.getNumber(), builder.build()
.toByteArray());
//发消息
clientSocket.writeToServer(byteArray);
//接收回复
while (true) {
response = clientSocket.readFromServerWithoutKeepAlive();
ProtoHead.ENetworkMessage type = NetworkPacket.getMessageType(response);
if(ProtoHead.ENetworkMessage.GET_PERSONALINFO_RSP != type)
continue;
GetPersonalInfoRsp getPersonalInfoFriendRsp = GetPersonalInfoRsp.parseFrom(NetworkPacket.getMessageObjectBytes(response));
clientSocket.close();
return getPersonalInfoFriendRsp;
}
}
}