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.DeleteFriendMsg;
import protocol.Msg.DeleteFriendMsg.DeleteFriendRsp;
import protocol.Msg.LoginMsg.LoginRsp;
import server.NetworkPacket;
/**
* 对删除好友的测试
* @author wangfei
*
*/
public class TestDeleteFriend {
/**
* 测试删除好友
* @author wangfei
* @throws IOException
*/
@Test
public void testDeleteFriend() throws IOException{
System.out.println("TestDeleteFriend1:双方已经是好友关系删除好友");
String user1="a3",password1="aa",friend1="1";
DeleteFriendRsp deleteFriendRsp1 = getResponse(user1,password1,friend1);
System.out.println("服务器返回结果:"+deleteFriendRsp1.getResultCode().toString());
assertEquals(deleteFriendRsp1.getResultCode().getNumber(), DeleteFriendRsp.ResultCode.SUCCESS_VALUE);
System.out.println("TestDeleteFriend2:双方不是好友关系删除好友");
String user2="a",password2="a",friend2="2";
DeleteFriendRsp deleteFriendRsp2 = getResponse(user2,password2,friend2);
System.out.println("服务器返回结果:"+deleteFriendRsp2.getResultCode().toString());
assertEquals(deleteFriendRsp2.getResultCode().getNumber(), DeleteFriendRsp.ResultCode.SUCCESS_VALUE);
}
private DeleteFriendRsp getResponse(String user,String password,String friend) throws UnknownHostException, IOException{
ClientSocket clientSocket = new ClientSocket();
byte[] response;
// 登陆
if (clientSocket.login(user, password) != LoginRsp.ResultCode.SUCCESS)
fail("登陆结果错误!");
DeleteFriendMsg.DeleteFriendReq.Builder builder = DeleteFriendMsg.DeleteFriendReq.newBuilder();
builder.setFriendUserId(friend);
byte[] byteArray = NetworkPacket.packMessage(ProtoHead.ENetworkMessage.DELETE_FRIEND_REQ.getNumber(), builder.build()
.toByteArray());
//发消息
clientSocket.writeToServer(byteArray);
//接收回复
while (true) {
response = clientSocket.readFromServerWithoutKeepAlive();
ProtoHead.ENetworkMessage type = NetworkPacket.getMessageType(response);
if(ProtoHead.ENetworkMessage.DELETE_FRIEND_RSP != type)
continue;
DeleteFriendRsp deleteFriendRsp = DeleteFriendRsp.parseFrom(NetworkPacket.getMessageObjectBytes(response));
clientSocket.close();
return deleteFriendRsp;
}
}
}