Skip to content

Commit

Permalink
🧪 SmsSenderTest
Browse files Browse the repository at this point in the history
  • Loading branch information
AigioL committed Nov 7, 2023
1 parent 8a7a050 commit 6a1c4a1
Show file tree
Hide file tree
Showing 4 changed files with 92 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/BD.Common.UnitTest/BD.Common.UnitTest.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@
</Compile>
</ItemGroup>

<ItemGroup Condition="Exists('..\..\..\Constants.Sms.cs')">
<Compile Remove="Constants.Sms.cs" />
<Compile Include="..\..\..\Constants.Sms.cs" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="NUnit" />
Expand All @@ -27,6 +32,7 @@
<ItemGroup>
<ProjectReference Include="..\BD.Common.Mvvm\BD.Common.Mvvm.csproj" />
<ProjectReference Include="..\BD.Common.Settings.V4\BD.Common.Settings.V4.csproj" />
<ProjectReference Include="..\BD.Common.SmsSender\BD.Common.SmsSender.csproj" />
<ProjectReference Include="..\BD.Common\BD.Common.csproj" />
</ItemGroup>

Expand Down
24 changes: 24 additions & 0 deletions src/BD.Common.UnitTest/Constants.Sms.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
namespace BD.Common.UnitTest;

static partial class Constants
{
public const int sms_length = 6;

public const string sms_phone_number = "18611112211";

public static readonly bool enable_HuaWeiCloudSmsSenderProviderTest = true; // ²»Ê¹Óó£Á¿

public const string hwc_api_address = "";

public const string hwc_app_key = "";

public const string hwc_app_secret = "";

public const string hwc_signature = "";

public const string hwc_sender = "";

public const string hwc_status_callback = "";

public const string hwc_default_template = "";
}
1 change: 1 addition & 0 deletions src/BD.Common.UnitTest/ImageHttpClientTest.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using BD.Common.Services.Implementation;
using Fusillade;
using Microsoft.Extensions.Logging;
using IHttpClientFactory = System.Net.Http.Client.IHttpClientFactory;

namespace BD.Common.UnitTest;

Expand Down
61 changes: 61 additions & 0 deletions src/BD.Common.UnitTest/SmsSenderTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
using BD.Common.Models.SmsSender.Channels.HuaWeiCloud;
using BD.Common.Services;
using BD.Common.Services.Implementation.SmsSender;
using Microsoft.Extensions.Logging;
using static BD.Common.UnitTest.Constants;
using HuaWeiCloudSmsSenderProvider = BD.Common.Services.Implementation.SmsSender.Channels.HuaWeiCloud.SmsSenderProvider;

namespace BD.Common.UnitTest;

public sealed class SmsSenderTest
{
static async Task GeneralTest(
ISmsSender smsSender,
string? message = null,
bool generateRandomNum = true)
{
if (generateRandomNum)
{
message ??= string.Join(null, new char[sms_length].Select(x => '6'));
}

var sendSmsResult = await smsSender.SendSmsAsync(sms_phone_number, message!, 0);
Assert.IsTrue(sendSmsResult.IsSuccess);
TestContext.WriteLine($"HttpStatusCode: {sendSmsResult.HttpStatusCode}");
TestContext.WriteLine($"Record: {sendSmsResult.Result?.GetRecord()}");

var checkSmsResult = await smsSender.CheckSmsAsync(sms_phone_number, message!);
Assert.IsTrue(checkSmsResult.IsCheckSuccess);
}

[Test]
public async Task DebugSmsSenderProviderTest()
{
ISmsSender smsSender = new DebugSmsSenderProvider();
await GeneralTest(smsSender);
}

[Test]
public async Task HuaWeiCloudSmsSenderProviderTest()
{
if (!enable_HuaWeiCloudSmsSenderProviderTest)
return;

using var httpClient = new HttpClient();
var loggerFactory = LoggerFactory.Create(static o => o.AddConsole());
var logger = loggerFactory.CreateLogger<HuaWeiCloudSmsSenderProvider>();

SmsHuaWeiCloudOptions options = new()
{
ApiAddress = hwc_api_address,
AppKey = hwc_app_key,
AppSecret = hwc_app_secret,
Signature = hwc_signature,
Sender = hwc_sender,
StatusCallBack = hwc_status_callback,
DefaultTemplate = hwc_default_template,
};
ISmsSender smsSender = new HuaWeiCloudSmsSenderProvider(logger, options, httpClient);
await GeneralTest(smsSender);
}
}

0 comments on commit 6a1c4a1

Please sign in to comment.