protocol buffer 测试类的实现

来源:互联网 发布:诺基亚6202c软件 编辑:程序博客网 时间:2024/06/05 17:25
package yonyou.dudu.api;


import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.List;


import yonyou.dudu.cloud.api.entity.LoginMsg;


public class TestLoginMsg {


public static void main(String[] args) throws IOException{

// 按照定义的数据结构,创建一个Login

LoginMsg.Login.Builder loginBuilder = LoginMsg.Login.newBuilder();
loginBuilder.setMessage("操作成功");
loginBuilder.setCode("0000");
loginBuilder.setStatus("OK");
loginBuilder.setDef1("123");
loginBuilder.setDef2("456");

LoginMsg.Login.DataContent.Builder dataContent =LoginMsg.Login.DataContent.newBuilder();

LoginMsg.Login.ApiUserInfo.Builder apiUserInfo = LoginMsg.Login.ApiUserInfo.newBuilder();

apiUserInfo.setId(117);
apiUserInfo.setUserId("15811507736");
apiUserInfo.setUserName("158人员");
apiUserInfo.setSex(2);
apiUserInfo.setPassword("45109BEB84F927CE");
apiUserInfo.setPasswordMD5("e10adc3949ba59abbe56e057f20f883e");
// apiUserInfo.setHeadImage(null);
// apiUserInfo.setHeadImgByte(null);
// apiUserInfo.setImgByte(null);
apiUserInfo.setSessionId("77F6A3B8A10AA7EAE84572B5F3C6AB0E334FBBA3A767B55300A4B6FE62851D67686449B514B3459C18A94D3DBDE6EF69324B91BC8824A258");
dataContent.setApiUserInfo(apiUserInfo);

        LoginMsg.Login.EprUserAbilityVo.Builder eprUserAbilityVo = LoginMsg.Login.EprUserAbilityVo.newBuilder();
LoginMsg.Login.EprUserAbilityVo.EprInfoVo.Builder eprInfoVo = LoginMsg.Login.EprUserAbilityVo.EprInfoVo.newBuilder();
LoginMsg.Login.EprUserAbilityVo.AbilityAuthVo.Builder abilityAuthVo = LoginMsg.Login.EprUserAbilityVo.AbilityAuthVo.newBuilder();
LoginMsg.Login.EprUserAbilityVo.PbxUserExtensionVo.Builder pbxUserExtensionVo = LoginMsg.Login.EprUserAbilityVo.PbxUserExtensionVo.newBuilder();

eprInfoVo.setId(619);
eprInfoVo.setParentEprId(0);
eprInfoVo.setCompany("129通信中心");
eprInfoVo.setContact("129");
eprInfoVo.setRegisterDate("2017-09-20 19:42:43");

abilityAuthVo.setPbxFlag(false);
abilityAuthVo.setPstnFlag(false);
pbxUserExtensionVo.setEprId(0);
pbxUserExtensionVo.setDomain("");
pbxUserExtensionVo.setExtensionNum("");
pbxUserExtensionVo.setDomainname("");
pbxUserExtensionVo.setUserId("");

    

eprUserAbilityVo.setEprInfoVo(eprInfoVo);
eprUserAbilityVo.setAbilityAuthVo(abilityAuthVo);
eprUserAbilityVo.setPbxUserExtensionVo(pbxUserExtensionVo);
dataContent.addEprUserAbilityVo(eprUserAbilityVo);


loginBuilder.setData(dataContent);

    LoginMsg.Login xxz = loginBuilder.build();

// 将数据写到输出流,如网络输出流,这里用到ByteArrayOutSream 来代替
ByteArrayOutputStream output = new ByteArrayOutputStream();
xxz.writeTo(output);

//----分割线:下面是接收方,将数据接收后发序列化-------------------------------------------------

byte[] byteArray = output.toByteArray();

// 接收到流并读取,如网络流,用ByteArrayInputStream 
ByteArrayInputStream input = new ByteArrayInputStream(byteArray);

// 反序列化
LoginMsg.Login loginReceive = LoginMsg.Login.parseFrom(input);

System.out.println("message = "+loginReceive.getMessage() +"code = "+loginReceive.getCode() +"status="+loginReceive.getStatus()+"def1="+loginReceive.getDef1()+"def2="+loginReceive.getDef2());

System.out.println("apiUserInfo id="+loginReceive.getData().getApiUserInfo().getId()+
"userId = "+loginReceive.getData().getApiUserInfo().getUserId()+
"userName = "+loginReceive.getData().getApiUserInfo().getUserName()+
"sex = "+loginReceive.getData().getApiUserInfo().getSex()+
       "password = "+loginReceive.getData().getApiUserInfo().getPassword()+
"passwordMD5 = "+loginReceive.getData().getApiUserInfo().getPasswordMD5()+
       "headImage="+loginReceive.getData().getApiUserInfo().getHeadImage()+
"headImgByte = "+ loginReceive.getData().getApiUserInfo().getHeadImgByte()+"imgByte = "+loginReceive.getData().getApiUserInfo().getImgByte()+"sessionId="+loginReceive.getData().getApiUserInfo().getSessionId());

List<yonyou.dudu.cloud.api.entity.LoginMsg.Login.EprUserAbilityVo> EprUserAbilityVoList = loginReceive.getData().getEprUserAbilityVoList();
for(yonyou.dudu.cloud.api.entity.LoginMsg.Login.EprUserAbilityVo vo :EprUserAbilityVoList){
System.out.println( vo.getAbilityAuthVo().getPbxFlag());
System.out.println( vo.getAbilityAuthVo().getPstnFlag());
System.out.println( vo.getEprInfoVo().getCompany());
System.out.println( vo.getEprInfoVo().getContact());
System.out.println( vo.getPbxUserExtensionVo().getDomain());
}







System.out.println("12334");


}
}