|
1 | 1 | package me.chanjar.weixin.mp.bean.message; |
2 | 2 |
|
3 | | -import me.chanjar.weixin.common.api.WxConsts; |
| 3 | +import java.util.List; |
| 4 | +import java.util.Map; |
| 5 | + |
4 | 6 | import org.testng.annotations.*; |
5 | 7 |
|
| 8 | +import me.chanjar.weixin.common.api.WxConsts; |
| 9 | + |
| 10 | +import static org.assertj.core.api.Assertions.assertThat; |
6 | 11 | import static org.testng.Assert.*; |
7 | 12 |
|
8 | 13 | @Test |
@@ -170,4 +175,85 @@ public void testFromXml2() { |
170 | 175 | assertEquals(wxMessage.getSendLocationInfo().getPoiName(), "wo de poi"); |
171 | 176 | } |
172 | 177 |
|
| 178 | + public void testFromXml_MASSSENDJOBFINISH() { |
| 179 | + //xml样例来自 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1481187827_i0l21 |
| 180 | + String xml = "<xml>\n" + |
| 181 | + "<ToUserName><![CDATA[gh_4d00ed8d6399]]></ToUserName>\n" + |
| 182 | + "<FromUserName><![CDATA[oV5CrjpxgaGXNHIQigzNlgLTnwic]]></FromUserName>\n" + |
| 183 | + "<CreateTime>1481013459</CreateTime>\n" + |
| 184 | + "<MsgType><![CDATA[event]]></MsgType>\n" + |
| 185 | + "<Event><![CDATA[MASSSENDJOBFINISH]]></Event>\n" + |
| 186 | + "<MsgID>1000001625</MsgID>\n" + |
| 187 | + "<Status><![CDATA[err(30003)]]></Status>\n" + |
| 188 | + "<TotalCount>0</TotalCount>\n" + |
| 189 | + "<FilterCount>0</FilterCount>\n" + |
| 190 | + "<SentCount>0</SentCount>\n" + |
| 191 | + "<ErrorCount>0</ErrorCount>\n" + |
| 192 | + "<CopyrightCheckResult>\n" + |
| 193 | + "<Count>2</Count>\n" + |
| 194 | + "<ResultList>\n" + |
| 195 | + "<item>\n" + |
| 196 | + "<ArticleIdx>1</ArticleIdx>\n" + |
| 197 | + "<UserDeclareState>0</UserDeclareState>\n" + |
| 198 | + "<AuditState>2</AuditState>\n" + |
| 199 | + "<OriginalArticleUrl><![CDATA[Url_1]]></OriginalArticleUrl>\n" + |
| 200 | + "<OriginalArticleType>1</OriginalArticleType>\n" + |
| 201 | + "<CanReprint>1</CanReprint>\n" + |
| 202 | + "<NeedReplaceContent>1</NeedReplaceContent>\n" + |
| 203 | + "<NeedShowReprintSource>1</NeedShowReprintSource>\n" + |
| 204 | + "</item>\n" + |
| 205 | + "<item>\n" + |
| 206 | + "<ArticleIdx>2</ArticleIdx>\n" + |
| 207 | + "<UserDeclareState>0</UserDeclareState>\n" + |
| 208 | + "<AuditState>2</AuditState>\n" + |
| 209 | + "<OriginalArticleUrl><![CDATA[Url_2]]></OriginalArticleUrl>\n" + |
| 210 | + "<OriginalArticleType>1</OriginalArticleType>\n" + |
| 211 | + "<CanReprint>1</CanReprint>\n" + |
| 212 | + "<NeedReplaceContent>1</NeedReplaceContent>\n" + |
| 213 | + "<NeedShowReprintSource>1</NeedShowReprintSource>\n" + |
| 214 | + "</item>\n" + |
| 215 | + "</ResultList>\n" + |
| 216 | + "<CheckState>2</CheckState>\n" + |
| 217 | + "</CopyrightCheckResult>\n" + |
| 218 | + "</xml>"; |
| 219 | + WxMpXmlMessage wxMessage = WxMpXmlMessage.fromXml(xml); |
| 220 | + assertEquals(wxMessage.getToUser(), "gh_4d00ed8d6399"); |
| 221 | + assertEquals(wxMessage.getFromUser(), "oV5CrjpxgaGXNHIQigzNlgLTnwic"); |
| 222 | + assertEquals(wxMessage.getCreateTime(), new Long(1481013459)); |
| 223 | + assertEquals(wxMessage.getMsgType(), WxConsts.XmlMsgType.EVENT); |
| 224 | + assertEquals(wxMessage.getEvent(), "MASSSENDJOBFINISH"); |
| 225 | + assertEquals(wxMessage.getMsgId(), new Long(1000001625L)); |
| 226 | + assertEquals(wxMessage.getStatus(), "err(30003)"); |
| 227 | + assertEquals(wxMessage.getTotalCount(), new Integer(0)); |
| 228 | + assertEquals(wxMessage.getFilterCount(), new Integer(0)); |
| 229 | + assertEquals(wxMessage.getSentCount(), new Integer(0)); |
| 230 | + assertEquals(wxMessage.getErrorCount(), new Integer(0)); |
| 231 | + |
| 232 | + final Map<String, Object> allFields = wxMessage.getAllFieldsMap(); |
| 233 | + assertThat(allFields).isNotNull(); |
| 234 | + final Map<String, Object> copyrightCheckResult = (Map<String, Object>) allFields.get("CopyrightCheckResult"); |
| 235 | + List<Map<String, Object>> resultList = (List<Map<String, Object>>) ((Map<String, Object>) copyrightCheckResult.get("ResultList")).get("item"); |
| 236 | + assertThat(copyrightCheckResult).isNotNull(); |
| 237 | + |
| 238 | + assertThat(copyrightCheckResult.get("Count")).isEqualTo("2"); |
| 239 | + assertThat(copyrightCheckResult.get("CheckState")).isEqualTo("2"); |
| 240 | + |
| 241 | + assertThat(resultList.get(0).get("ArticleIdx")).isEqualTo("1"); |
| 242 | + assertThat(resultList.get(0).get("UserDeclareState")).isEqualTo("0"); |
| 243 | + assertThat(resultList.get(0).get("AuditState")).isEqualTo("2"); |
| 244 | + assertThat(resultList.get(0).get("OriginalArticleUrl")).isEqualTo("Url_1"); |
| 245 | + assertThat(resultList.get(0).get("OriginalArticleType")).isEqualTo("1"); |
| 246 | + assertThat(resultList.get(0).get("CanReprint")).isEqualTo("1"); |
| 247 | + assertThat(resultList.get(0).get("NeedReplaceContent")).isEqualTo("1"); |
| 248 | + assertThat(resultList.get(0).get("NeedShowReprintSource")).isEqualTo("1"); |
| 249 | + |
| 250 | + assertThat(resultList.get(1).get("ArticleIdx")).isEqualTo("2"); |
| 251 | + assertThat(resultList.get(1).get("UserDeclareState")).isEqualTo("0"); |
| 252 | + assertThat(resultList.get(1).get("AuditState")).isEqualTo("2"); |
| 253 | + assertThat(resultList.get(1).get("OriginalArticleUrl")).isEqualTo("Url_2"); |
| 254 | + assertThat(resultList.get(1).get("OriginalArticleType")).isEqualTo("1"); |
| 255 | + assertThat(resultList.get(1).get("CanReprint")).isEqualTo("1"); |
| 256 | + assertThat(resultList.get(1).get("NeedReplaceContent")).isEqualTo("1"); |
| 257 | + assertThat(resultList.get(1).get("NeedShowReprintSource")).isEqualTo("1"); |
| 258 | + } |
173 | 259 | } |
0 commit comments