| @ -0,0 +1,36 @@ | |||
| using System.Reflection; | |||
| using System.Runtime.CompilerServices; | |||
| using System.Runtime.InteropServices; | |||
| // 有关程序集的常规信息通过以下特性集 | |||
| // 控制。更改这些特性值可修改 | |||
| // 与程序集关联的信息。 | |||
| [assembly: AssemblyTitle("Test")] | |||
| [assembly: AssemblyDescription("")] | |||
| [assembly: AssemblyConfiguration("")] | |||
| [assembly: AssemblyCompany("")] | |||
| [assembly: AssemblyProduct("Test")] | |||
| [assembly: AssemblyCopyright("Copyright © 2016")] | |||
| [assembly: AssemblyTrademark("")] | |||
| [assembly: AssemblyCulture("")] | |||
| // 将 ComVisible 设置为 false 会使此程序集中的类型 | |||
| // 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, | |||
| // 请将该类型上的 ComVisible 特性设置为 true。 | |||
| [assembly: ComVisible(false)] | |||
| // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID | |||
| [assembly: Guid("245c53d7-fa35-4304-93d4-5b966cc6df81")] | |||
| // 程序集的版本信息由以下四个值组成: | |||
| // | |||
| // 主版本 | |||
| // 次版本 | |||
| // 生成号 | |||
| // 修订号 | |||
| // | |||
| // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, | |||
| // 方法是按如下所示使用“*”: | |||
| // [assembly: AssemblyVersion("1.0.*")] | |||
| [assembly: AssemblyVersion("1.0.0.0")] | |||
| [assembly: AssemblyFileVersion("1.0.0.0")] | |||
| @ -0,0 +1,99 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
| <PropertyGroup> | |||
| <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||
| <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | |||
| <ProjectGuid>{73699A65-4D9C-4199-86AB-39A421119AC1}</ProjectGuid> | |||
| <OutputType>Library</OutputType> | |||
| <AppDesignerFolder>Properties</AppDesignerFolder> | |||
| <RootNamespace>Test</RootNamespace> | |||
| <AssemblyName>Test</AssemblyName> | |||
| <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> | |||
| <FileAlignment>512</FileAlignment> | |||
| <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | |||
| <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> | |||
| <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> | |||
| <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath> | |||
| <IsCodedUITest>False</IsCodedUITest> | |||
| <TestProjectType>UnitTest</TestProjectType> | |||
| </PropertyGroup> | |||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | |||
| <DebugSymbols>true</DebugSymbols> | |||
| <DebugType>full</DebugType> | |||
| <Optimize>false</Optimize> | |||
| <OutputPath>bin\Debug\</OutputPath> | |||
| <DefineConstants>DEBUG;TRACE</DefineConstants> | |||
| <ErrorReport>prompt</ErrorReport> | |||
| <WarningLevel>4</WarningLevel> | |||
| </PropertyGroup> | |||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | |||
| <DebugType>pdbonly</DebugType> | |||
| <Optimize>true</Optimize> | |||
| <OutputPath>bin\Release\</OutputPath> | |||
| <DefineConstants>TRACE</DefineConstants> | |||
| <ErrorReport>prompt</ErrorReport> | |||
| <WarningLevel>4</WarningLevel> | |||
| </PropertyGroup> | |||
| <ItemGroup> | |||
| <Reference Include="Forks.Utils"> | |||
| <HintPath>..\..\..\tsref\Debug\Forks.Utils.dll</HintPath> | |||
| </Reference> | |||
| <Reference Include="System" /> | |||
| <Reference Include="System.Core"> | |||
| <RequiredTargetFramework>3.5</RequiredTargetFramework> | |||
| </Reference> | |||
| </ItemGroup> | |||
| <Choose> | |||
| <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'"> | |||
| <ItemGroup> | |||
| <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> | |||
| </ItemGroup> | |||
| </When> | |||
| <Otherwise> | |||
| <ItemGroup> | |||
| <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" /> | |||
| </ItemGroup> | |||
| </Otherwise> | |||
| </Choose> | |||
| <ItemGroup> | |||
| <Compile Include="UnitTest1.cs" /> | |||
| <Compile Include="Properties\AssemblyInfo.cs" /> | |||
| </ItemGroup> | |||
| <ItemGroup> | |||
| <ProjectReference Include="..\B3WeChat.Web\B3WeChat.Web.csproj"> | |||
| <Project>{4a56a7f3-dff5-4fb0-ae5f-0def57e49ab8}</Project> | |||
| <Name>B3WeChat.Web</Name> | |||
| </ProjectReference> | |||
| <ProjectReference Include="..\B3WeChat\B3WeChat.csproj"> | |||
| <Project>{9e680662-8323-494f-8140-237db0a9f0d9}</Project> | |||
| <Name>B3WeChat</Name> | |||
| </ProjectReference> | |||
| </ItemGroup> | |||
| <Choose> | |||
| <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'"> | |||
| <ItemGroup> | |||
| <Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
| <Private>False</Private> | |||
| </Reference> | |||
| <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
| <Private>False</Private> | |||
| </Reference> | |||
| <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
| <Private>False</Private> | |||
| </Reference> | |||
| <Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||
| <Private>False</Private> | |||
| </Reference> | |||
| </ItemGroup> | |||
| </When> | |||
| </Choose> | |||
| <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" /> | |||
| <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | |||
| <!-- To modify your build process, add your task inside one of the targets below and uncomment it. | |||
| Other similar extension points exist, see Microsoft.Common.targets. | |||
| <Target Name="BeforeBuild"> | |||
| </Target> | |||
| <Target Name="AfterBuild"> | |||
| </Target> | |||
| --> | |||
| </Project> | |||
| @ -0,0 +1,111 @@ | |||
| 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 ReceivedMsg; | |||
| 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 QRCodeMessage; | |||
| 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 QRCodeMessage; | |||
| 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 QRCodeMessage; | |||
| 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); | |||
| } | |||
| } | |||
| } | |||