feat(wxads): 导入微信广告平台 API 客户端项目

This commit is contained in:
Fu Diwei
2021-06-11 18:31:10 +08:00
parent 943da4b527
commit c414de558b
16 changed files with 542 additions and 1 deletions

View File

@@ -0,0 +1 @@
appsettings.local.json

View File

@@ -0,0 +1,31 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<None Remove=".gitignore" />
<Content Include="appsettings.json" />
<Content Include="appsettings.local.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="ModelSamples/**/*.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.4" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\SKIT.FlurlHttpClient.Wechat.Ads\SKIT.FlurlHttpClient.Wechat.Ads.csproj" />
<ProjectReference Include="..\SKIT.FlurlHttpClient.Wechat.TestTools\SKIT.FlurlHttpClient.Wechat.TestTools.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,19 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.Ads.UnitTests
{
class TestClients
{
static TestClients()
{
Instance = new WechatAdsClient(new WechatAdsClientOptions()
{
AgencyId = TestConfigs.WechatAgencyId,
AgencyAppId = TestConfigs.WechatAgencyAppId,
AgencyApiKey = TestConfigs.WechatAgencyApiKey
});
}
public static readonly WechatAdsClient Instance;
}
}

View File

@@ -0,0 +1,35 @@
using System;
using System.IO;
using System.Text.Json;
namespace SKIT.FlurlHttpClient.Wechat.Ads.UnitTests
{
class TestConfigs
{
static TestConfigs()
{
// NOTICE: 请在项目根目录下建立 appsettings.local.json按照 appsettings.json 的格式填入测试参数。
// WARN: 敏感信息请不要提交到 git
using var stream = File.OpenRead("appsettings.local.json");
using var json = JsonDocument.Parse(stream);
var config = json.RootElement.GetProperty("WechatConfig");
WechatAgencyId = config.GetProperty("AgencyId").GetString();
WechatAgencyAppId = config.GetProperty("AgencyAppId").GetString();
WechatAgencyApiKey = config.GetProperty("AgencyApiKey").GetString();
WechatAccessToken = config.GetProperty("AccessToken").GetString();
ProjectSourceDirectory = json.RootElement.GetProperty("ProjectSourceDirectory").GetString();
ProjectTestDirectory = json.RootElement.GetProperty("ProjectTestDirectory").GetString();
}
public static readonly string WechatAgencyId;
public static readonly string WechatAgencyAppId;
public static readonly string WechatAgencyApiKey;
public static readonly string WechatAccessToken;
public static readonly string ProjectSourceDirectory;
public static readonly string ProjectTestDirectory;
}
}

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Xunit;
namespace SKIT.FlurlHttpClient.Wechat.Ads.UnitTests
{
public class WechatAdsSecurityTests
{
[Fact(DisplayName = "信息摘要MD5")]
public void Md5HashTest()
{
string rawData = "spidbff89d5138160943040012345678901234567890uFolxxiZbrZ/PRbyen5uK5D1kgIB2yHyDsfDGxxgeG";
string actualHash = Security.MD5Utility.Hash(rawData);
string expectdHash = "32c03e8fcdb08e653e42805e302f70ed";
Assert.Equal(expectdHash, actualHash, ignoreCase: true);
}
}
}

View File

@@ -0,0 +1,10 @@
{
"WechatConfig": {
"AgencyId": "请在此填写用于测试的微信广告 AgencyId",
"AgencyAppId": "请在此填写用于测试的微信广告 AgencyAppId",
"AgencyApiKey": "请在此填写用于测试的微信广告 AgencyApiKey",
"AccessToken": "请在此填写用于测试的微信广告 AccessToken"
},
"ProjectSourceDirectory": "请输入当前 SDK 项目所在的目录完整路径,如 C:\\Project\\src\\SKIT.FlurlHttpClient.Wechat.Api\\",
"ProjectTestDirectory": "请输入当前测试项目所在的目录完整路径,如 C:\\Project\\test\\SKIT.FlurlHttpClient.Wechat.Api.UnitTests\\"
}