Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supplement:单元测试 1、当启用Redis缓存时,Senparc.Weixin.Cache.Redis和Senparc.Weixin.Cache.CsRedis的Nuget包必须同时安装才能正常启动 2、调用IRegisterService.RegisterWxOpenAccount后,会把内存中的WeixinAppId和WeixinAppSeecret的值改变 #2261

Merged
merged 8 commits into from
Dec 30, 2020
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
<ProjectReference Include="..\..\Senparc.Weixin.AspNet\Senparc.Weixin.AspNet.netcore3.csproj" />
<ProjectReference Include="..\..\Senparc.Weixin.Cache\Senparc.Weixin.Cache.Memcached\Senparc.Weixin.Cache.Memcached.netcore3.csproj" />
<ProjectReference Include="..\..\Senparc.Weixin.Cache\Senparc.Weixin.Cache.Redis\Senparc.Weixin.Cache.Redis.netcore3.csproj" />
<ProjectReference Include="..\..\Senparc.Weixin.Work\Senparc.Weixin.Work\Senparc.Weixin.Work.netcore3.csproj" />
<ProjectReference Include="..\..\Senparc.Weixin.WxOpen\src\Senparc.Weixin.WxOpen\Senparc.Weixin.WxOpen\Senparc.Weixin.WxOpen.netcore3.csproj" />
<ProjectReference Include="..\..\Senparc.Weixin\Senparc.Weixin\Senparc.Weixin.netcore3.csproj" />
<ProjectReference Include="..\Senparc.Weixin.MP\Senparc.Weixin.MP.netcore3.csproj" />
</ItemGroup>
Expand All @@ -37,4 +39,10 @@
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>

<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>

</Project>
118 changes: 117 additions & 1 deletion src/Senparc.Weixin.MP/Senparc.WeixinTests/WeixinRegisterTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Senparc.CO2NET;
using Senparc.CO2NET.RegisterServices;
using Senparc.Weixin;
using Senparc.Weixin.Cache.Redis;
using Senparc.Weixin.Entities;
using Senparc.Weixin.MP;
using Senparc.Weixin.Work;
using Senparc.Weixin.WxOpen;
using System;
using System.Collections.Generic;
using System.IO;
Expand All @@ -17,5 +27,111 @@ public void MyTestMethod()
Console.WriteLine(pathSeparator);
Console.WriteLine(altPathSeparator);
}

[TestMethod]
public void TestRegisterMpAccount()
{
SenparcWeixinSetting senparcWeixinSetting;
SenparcSetting senparcSetting;
IConfiguration config;

config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json").Build();

senparcSetting = new SenparcSetting();
senparcWeixinSetting = new SenparcWeixinSetting();

config.GetSection("SenparcSetting").Bind(senparcSetting);
config.GetSection("SenparcWeixinSetting").Bind(senparcWeixinSetting);

var services = new ServiceCollection();
services.AddSenparcGlobalServices(config);

IRegisterService register = RegisterService.Start(senparcSetting).UseSenparcGlobal();

#region Redis配置
var redisConfigurationStr = senparcSetting.Cache_Redis_Configuration;
Senparc.CO2NET.Cache.Redis.Register.SetConfigurationOption(redisConfigurationStr);
Senparc.CO2NET.Cache.Redis.Register.UseKeyValueRedisNow();

// 这里需要同时安装以下两个Nuget包,否则启动报错
// Senparc.Weixin.Cache.Redis
// Senparc.Weixin.Cache.CsRedis
register.UseSenparcWeixinCacheRedis();

#endregion


var logFile = Path.Combine(Directory.GetCurrentDirectory(), "Debugger.log");
var logs = new List<string>();
logs.Add("********************** Start configuration the senparcSDK **********************");
logs.Add($" ");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} Before the method: UseSenparcWeixin Invoke");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinAppId: {senparcWeixinSetting.WeixinAppId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinAppSecret: {senparcWeixinSetting.WeixinAppSecret}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} Token: {senparcWeixinSetting.Token}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} EncodingAESKey: {senparcWeixinSetting.EncodingAESKey}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinCorpId: {senparcWeixinSetting.WeixinCorpId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinCorpSecret: {senparcWeixinSetting.WeixinCorpSecret}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WxOpenAppId: {senparcWeixinSetting.WxOpenAppId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WxOpenAppSecret: {senparcWeixinSetting.WxOpenAppSecret}");

register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting);

logs.Add($" ");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} After the method: UseSenparcWeixin Invoke & Before the method: RegisterMpAccount Invoke");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinAppId: {senparcWeixinSetting.WeixinAppId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinAppSecret: {senparcWeixinSetting.WeixinAppSecret}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} Token: {senparcWeixinSetting.Token}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} EncodingAESKey: {senparcWeixinSetting.EncodingAESKey}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinCorpId: {senparcWeixinSetting.WeixinCorpId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinCorpSecret: {senparcWeixinSetting.WeixinCorpSecret}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WxOpenAppId: {senparcWeixinSetting.WxOpenAppId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WxOpenAppSecret: {senparcWeixinSetting.WxOpenAppSecret}");

register.RegisterMpAccount(senparcWeixinSetting.MpSetting); // 公众号账号配置

logs.Add($" ");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} After the method: RegisterMpAccount Invoke & Before the method: RegisterWorkAccount");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinAppId: {senparcWeixinSetting.WeixinAppId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinAppSecret: {senparcWeixinSetting.WeixinAppSecret}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} Token: {senparcWeixinSetting.Token}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} EncodingAESKey: {senparcWeixinSetting.EncodingAESKey}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinCorpId: {senparcWeixinSetting.WeixinCorpId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinCorpSecret: {senparcWeixinSetting.WeixinCorpSecret}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WxOpenAppId: {senparcWeixinSetting.WxOpenAppId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WxOpenAppSecret: {senparcWeixinSetting.WxOpenAppSecret}");

register.RegisterWorkAccount(senparcWeixinSetting.WorkSetting); // 企业微信账号配置

logs.Add($" ");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} After the method: RegisterWorkAccount Invoke & Before the method: RegisterWxOpenAccount");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinAppId: {senparcWeixinSetting.WeixinAppId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinAppSecret: {senparcWeixinSetting.WeixinAppSecret}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} Token: {senparcWeixinSetting.Token}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} EncodingAESKey: {senparcWeixinSetting.EncodingAESKey}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinCorpId: {senparcWeixinSetting.WeixinCorpId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinCorpSecret: {senparcWeixinSetting.WeixinCorpSecret}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WxOpenAppId: {senparcWeixinSetting.WxOpenAppId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WxOpenAppSecret: {senparcWeixinSetting.WxOpenAppSecret}");

register.RegisterWxOpenAccount(senparcWeixinSetting.WxOpenSetting); // 小程序账号配置

logs.Add($" ");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} After the method: RegisterWxOpenAccount Invoke");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinAppId: {senparcWeixinSetting.WeixinAppId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinAppSecret: {senparcWeixinSetting.WeixinAppSecret}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} Token: {senparcWeixinSetting.Token}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} EncodingAESKey: {senparcWeixinSetting.EncodingAESKey}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinCorpId: {senparcWeixinSetting.WeixinCorpId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WeixinCorpSecret: {senparcWeixinSetting.WeixinCorpSecret}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WxOpenAppId: {senparcWeixinSetting.WxOpenAppId}");
logs.Add($"{DateTime.Now:yyyy/MM/dd HH:mm:ss fffff} WxOpenAppSecret: {senparcWeixinSetting.WxOpenAppSecret}");
logs.Add($" ");
logs.Add("********************** End configuration the senparcSDK **********************");

File.AppendAllLines(logFile, logs, Encoding.UTF8);
}
}
}
29 changes: 29 additions & 0 deletions src/Senparc.Weixin.MP/Senparc.WeixinTests/appsettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
//CO2NET ����
"SenparcSetting": {
//����Ϊ CO2NET �� SenparcSetting ȫ�����ã������޸� key����ɾ���κ���
"IsDebug": true,
"DefaultCacheNamespace": "DefaultCache",
//�ֲ�ʽ����
"Cache_Redis_Configuration": "localhost:6379,password=123456,defaultDatabase=3"
//"Cache_Redis_Configuration": "#{Cache_Redis_Configuration}#", //Redis����
//"Cache_Redis_Configuration": "localhost:6379",//����������
//"Cache_Redis_Configuration": "localhost:6379,password=senparc,connectTimeout=1000,connectRetry=2,syncTimeout=10000,defaultDatabase=3",//���뼰��������
//"Cache_Memcached_Configuration": "#{Cache_Memcached_Configuration}#", //Memcached����
//"SenparcUnionAgentKey": "#{SenparcUnionAgentKey}#" //SenparcUnionAgentKey
},
"SenparcWeixinSetting": {
"IsDebug": true,
"WeixinAppId": "weixinappid-1",
"WeixinAppSecret": "weixinappsecret-1",
"WxOpenAppId": "WxOpenAppId-1",
"WxOpenAppSecret": "WxOpenAppSecret-1",
"WxOpenToken": "#{WxOpenToken}#",
"WxOpenEncodingAESKey": "#{WxOpenEncodingAESKey}#",
"WeixinCorpId": "WeixinCorpId-1",
"WeixinCorpAgentId": "#{WeixinCorpAgentId}#",
"WeixinCorpSecret": "WeixinCorpSecret-1",
"WeixinCorpToken": "WeixinCorpToken-1",
"WeixinCorpEncodingAESKey": "WeixinCorpEncodingAESKey-1"
}
}
Loading