| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -157,7 +157,7 @@ public class WxCpXmlMessage implements Serializable { | |||
| 157 | 157 | ||
| 158 | 158 | @XStreamAlias("MemChangeList") | |
| 159 | 159 | @XStreamConverter(value = XStreamCDataConverter.class) | |
| 160 | - private String MemChangeList; | ||
| 160 | + private String memChangeList; | ||
| 161 | 161 | ||
| 162 | 162 | @XStreamAlias("LastMemVer") | |
| 163 | 163 | @XStreamConverter(value = XStreamCDataConverter.class) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -497,4 +497,78 @@ public void testIntelligentRobotMessage() { | |||
| 497 | 497 | assertEquals(wxMessage.getRobotId(), "robot_id_123"); | |
| 498 | 498 | assertEquals(wxMessage.getSessionId(), "session_id_456"); | |
| 499 | 499 | } | |
| 500 | + | ||
| 501 | + /** | ||
| 502 | + * Test external chat change event | ||
| 503 | + * 测试企业微信群聊变更事件解析 - 群成员变更场景 | ||
| 504 | + */ | ||
| 505 | + public void testExternalChatChangeEvent() { | ||
| 506 | + // 测试群成员加入事件 | ||
| 507 | + String xmlAddMember = "<xml>" | ||
| 508 | + + "<ToUserName><![CDATA[toUser]]></ToUserName>" | ||
| 509 | + + "<FromUserName><![CDATA[sys]]></FromUserName>" | ||
| 510 | + + "<CreateTime>1403610513</CreateTime>" | ||
| 511 | + + "<MsgType><![CDATA[event]]></MsgType>" | ||
| 512 | + + "<Event><![CDATA[change_external_chat]]></Event>" | ||
| 513 | + + "<ChangeType><![CDATA[update]]></ChangeType>" | ||
| 514 | + + "<ChatId><![CDATA[wrOgQhDgAAMYQiS5ol9G7gK9JVAAAA]]></ChatId>" | ||
| 515 | + + "<UpdateDetail><![CDATA[add_member]]></UpdateDetail>" | ||
| 516 | + + "<JoinScene>1</JoinScene>" | ||
| 517 | + + "<MemChangeCnt>2</MemChangeCnt>" | ||
| 518 | + + "<MemChangeList><![CDATA[wmEJiCwAAA9KG2qlSq6rKwASSgAAAA,wmEJiCwAAA9KG2qlSq6rKwBBBBBBB]]></MemChangeList>" | ||
| 519 | + + "</xml>"; | ||
| 520 | + WxCpXmlMessage wxMessage = WxCpXmlMessage.fromXml(xmlAddMember); | ||
| 521 | + assertEquals(wxMessage.getToUserName(), "toUser"); | ||
| 522 | + assertEquals(wxMessage.getFromUserName(), "sys"); | ||
| 523 | + assertEquals(wxMessage.getCreateTime(), Long.valueOf(1403610513L)); | ||
| 524 | + assertEquals(wxMessage.getMsgType(), WxConsts.XmlMsgType.EVENT); | ||
| 525 | + assertEquals(wxMessage.getEvent(), WxCpConsts.EventType.CHANGE_EXTERNAL_CHAT); | ||
| 526 | + assertEquals(wxMessage.getChangeType(), "update"); | ||
| 527 | + assertEquals(wxMessage.getChatId(), "wrOgQhDgAAMYQiS5ol9G7gK9JVAAAA"); | ||
| 528 | + assertEquals(wxMessage.getUpdateDetail(), "add_member"); | ||
| 529 | + assertEquals(wxMessage.getJoinScene(), "1"); | ||
| 530 | + assertEquals(wxMessage.getMemChangeCnt(), "2"); | ||
| 531 | + assertEquals(wxMessage.getMemChangeList(), "wmEJiCwAAA9KG2qlSq6rKwASSgAAAA,wmEJiCwAAA9KG2qlSq6rKwBBBBBBB"); | ||
| 532 | + | ||
| 533 | + // 测试群成员退出事件 | ||
| 534 | + String xmlDelMember = "<xml>" | ||
| 535 | + + "<ToUserName><![CDATA[toUser]]></ToUserName>" | ||
| 536 | + + "<FromUserName><![CDATA[sys]]></FromUserName>" | ||
| 537 | + + "<CreateTime>1403610513</CreateTime>" | ||
| 538 | + + "<MsgType><![CDATA[event]]></MsgType>" | ||
| 539 | + + "<Event><![CDATA[change_external_chat]]></Event>" | ||
| 540 | + + "<ChangeType><![CDATA[update]]></ChangeType>" | ||
| 541 | + + "<ChatId><![CDATA[wrOgQhDgAAMYQiS5ol9G7gK9JVAAAA]]></ChatId>" | ||
| 542 | + + "<UpdateDetail><![CDATA[del_member]]></UpdateDetail>" | ||
| 543 | + + "<QuitScene>1</QuitScene>" | ||
| 544 | + + "<MemChangeCnt>1</MemChangeCnt>" | ||
| 545 | + + "<MemChangeList><![CDATA[wmEJiCwAAA9KG2qlSq6rKwASSgAAAA]]></MemChangeList>" | ||
| 546 | + + "</xml>"; | ||
| 547 | + WxCpXmlMessage wxMessage2 = WxCpXmlMessage.fromXml(xmlDelMember); | ||
| 548 | + assertEquals(wxMessage2.getEvent(), WxCpConsts.EventType.CHANGE_EXTERNAL_CHAT); | ||
| 549 | + assertEquals(wxMessage2.getChangeType(), "update"); | ||
| 550 | + assertEquals(wxMessage2.getChatId(), "wrOgQhDgAAMYQiS5ol9G7gK9JVAAAA"); | ||
| 551 | + assertEquals(wxMessage2.getUpdateDetail(), "del_member"); | ||
| 552 | + assertEquals(wxMessage2.getQuitScene(), "1"); | ||
| 553 | + assertEquals(wxMessage2.getMemChangeCnt(), "1"); | ||
| 554 | + assertEquals(wxMessage2.getMemChangeList(), "wmEJiCwAAA9KG2qlSq6rKwASSgAAAA"); | ||
| 555 | + | ||
| 556 | + // 测试空MemChangeList场景(某些情况下可能没有成员变更列表) | ||
| 557 | + String xmlNoMemChangeList = "<xml>" | ||
| 558 | + + "<ToUserName><![CDATA[toUser]]></ToUserName>" | ||
| 559 | + + "<FromUserName><![CDATA[sys]]></FromUserName>" | ||
| 560 | + + "<CreateTime>1403610513</CreateTime>" | ||
| 561 | + + "<MsgType><![CDATA[event]]></MsgType>" | ||
| 562 | + + "<Event><![CDATA[change_external_chat]]></Event>" | ||
| 563 | + + "<ChangeType><![CDATA[update]]></ChangeType>" | ||
| 564 | + + "<ChatId><![CDATA[wrOgQhDgAAMYQiS5ol9G7gK9JVAAAA]]></ChatId>" | ||
| 565 | + + "<UpdateDetail><![CDATA[change_name]]></UpdateDetail>" | ||
| 566 | + + "</xml>"; | ||
| 567 | + WxCpXmlMessage wxMessage3 = WxCpXmlMessage.fromXml(xmlNoMemChangeList); | ||
| 568 | + assertEquals(wxMessage3.getEvent(), WxCpConsts.EventType.CHANGE_EXTERNAL_CHAT); | ||
| 569 | + assertEquals(wxMessage3.getChangeType(), "update"); | ||
| 570 | + assertEquals(wxMessage3.getUpdateDetail(), "change_name"); | ||
| 571 | + // 当XML中没有MemChangeList元素时,字段应该为null而不是空字符串 | ||
| 572 | + assertThat(wxMessage3.getMemChangeList()).isNull(); | ||
| 573 | + } | ||
| 500 | 574 | } | |
| Back | FazBrowse Home | New Git URL |
0 commit comments