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.PersonalSettingsMsg;
import protocol.Msg.LoginMsg.LoginRsp;
import protocol.Msg.PersonalSettingsMsg.PersonalSettingsRsp;
import server.NetworkPacket;
/**
* 对个人设置功能的测试
*
* @author wangfei
*
*/
public class TestPersonalSettings {
/**
* 测试个人设置
*
* @author wangfei
* @throws IOException
*/
@Test
public void testPersonalSettings() throws IOException {
String user1="1",password1="1";
System.out.println("TestPersonalSettings1:只设置昵称");
PersonalSettingsRsp personalSettingsRsp1 = getResponse(user1,password1,"newname-test1",null,0);
System.out.println("服务器返回结果:"+personalSettingsRsp1.getResultCode().toString());
assertEquals(personalSettingsRsp1.getResultCode().getNumber(),PersonalSettingsRsp.ResultCode.SUCCESS_VALUE);
String user2="2",password2="1";
System.out.println("TestPersonalSettings2:只设置密码");
PersonalSettingsRsp personalSettingsRsp2 = getResponse(user2,password2,null,"newpassword-test2",0);
System.out.println("服务器返回结果:"+personalSettingsRsp2.getResultCode().toString());
assertEquals(personalSettingsRsp2.getResultCode().getNumber(),PersonalSettingsRsp.ResultCode.SUCCESS_VALUE);
String user3="3",password3="1";
System.out.println("TestPersonalSettings3:只设置头像");
PersonalSettingsRsp personalSettingsRsp3 = getResponse(user3,password3,null,null,1);
System.out.println("服务器返回结果:"+personalSettingsRsp3.getResultCode().toString());
assertEquals(personalSettingsRsp3.getResultCode().getNumber(),PersonalSettingsRsp.ResultCode.SUCCESS_VALUE);
}
private PersonalSettingsRsp getResponse(String user,String password,String newUserName,String newPassword,int newHeadInx) throws IOException{
ClientSocket clientSocket = new ClientSocket();
byte[] response;
// 登陆
if (clientSocket.login(user, password) != LoginRsp.ResultCode.SUCCESS)
fail("登陆结果错误!");
PersonalSettingsMsg.PersonalSettingsReq.Builder builder = PersonalSettingsMsg.PersonalSettingsReq.newBuilder();
if(newUserName != null)
builder.setUserName(newUserName);
if(newPassword != null)
builder.setUserPassword(newPassword);
if(newHeadInx != 0)
builder.setHeadIndex(newHeadInx);
byte[] byteArray = NetworkPacket.packMessage(ProtoHead.ENetworkMessage.PERSONALSETTINGS_REQ.getNumber(), builder.build()
.toByteArray());
//发消息
clientSocket.writeToServer(byteArray);
//接收回复
while (true) {
response = clientSocket.readFromServerWithoutKeepAlive();
ProtoHead.ENetworkMessage type = NetworkPacket.getMessageType(response);
if(ProtoHead.ENetworkMessage.PERSONALSETTINGS_RSP != type)
continue;
PersonalSettingsRsp personalSettingsRsp = PersonalSettingsRsp.parseFrom(NetworkPacket.getMessageObjectBytes(response));
clientSocket.close();
return personalSettingsRsp;
}
}
}