You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

111 lines
3.5 KiB

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using BWP.B3WeChat.Utils;
using BWP.B3WeChat.Entities;
namespace Test
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestTextMessageParser()
{
var xml = @"<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a test]]></Content>
<MsgId>1234567890123456</MsgId>
</xml>";
var message = InOutMessageUtil.ParseWeChatMessage(xml) as ReceivedTextMsg;
Assert.IsNotNull(message);
Assert.AreEqual("toUser", message.ToUserName);
Assert.AreEqual("fromUser", message.FromUserName);
Assert.AreEqual("1348831860", message.CreateTime);
Assert.AreEqual("text", message.MsgType);
Assert.AreEqual("1234567890123456", message.MsgId);
}
[TestMethod]
public void TestSubscribeEventParser()
{
var xml = @"<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>";
var message = InOutMessageUtil.ParseWeChatMessage(xml) as ReceivedEventMsg;
Assert.IsNotNull(message);
Assert.AreEqual("toUser", message.ToUserName);
Assert.AreEqual("fromUser", message.FromUserName);
Assert.AreEqual("123456789", message.CreateTime);
Assert.AreEqual("event", message.MsgType);
Assert.AreEqual("subscribe", message.Event);
int sceneid;
Assert.AreEqual(false, message.TryGetSceneID(out sceneid));
}
[TestMethod]
public void TestSubscribeWithSceneEventParser()
{
var xml = @"<xml><ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[qrscene_123123]]></EventKey>
<Ticket><![CDATA[TICKET]]></Ticket>
</xml>";
var message = InOutMessageUtil.ParseWeChatMessage(xml) as ReceivedEventMsg;
Assert.IsNotNull(message);
Assert.AreEqual("toUser", message.ToUserName);
Assert.AreEqual("fromUser", message.FromUserName);
Assert.AreEqual("123456789", message.CreateTime);
Assert.AreEqual("event", message.MsgType);
Assert.AreEqual("subscribe", message.Event);
int sceneid;
Assert.AreEqual(true, message.TryGetSceneID(out sceneid));
Assert.AreEqual(123123, sceneid);
}
[TestMethod]
public void TestScanEventParser()
{
var xml = @"<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[SCAN]]></Event>
<EventKey><![CDATA[123123]]></EventKey>
<Ticket><![CDATA[TICKET]]></Ticket>
</xml>";
var message = InOutMessageUtil.ParseWeChatMessage(xml) as ReceivedEventMsg;
Assert.IsNotNull(message);
Assert.AreEqual("toUser", message.ToUserName);
Assert.AreEqual("fromUser", message.FromUserName);
Assert.AreEqual("123456789", message.CreateTime);
Assert.AreEqual("event", message.MsgType);
Assert.AreEqual("SCAN", message.Event);
int sceneid;
Assert.AreEqual(true, message.TryGetSceneID(out sceneid));
Assert.AreEqual(123123, sceneid);
Assert.AreEqual("TICKET", message.Ticket);
}
}
}