Add mocked broker client

This commit is contained in:
2025-10-09 19:12:30 +09:00
parent bb91136d42
commit 209cd79f01
32 changed files with 809 additions and 225 deletions

View File

@ -5,6 +5,7 @@
@using Hcs.Broker.MessageCapturer
@using Hcs.Service.Async.Nsi
@using Hcs.WebApp.Config
@using Hcs.WebApp.Services
@using Hcs.WebApp.Utils
@using Microsoft.AspNetCore.Authorization
@ -14,6 +15,7 @@
@inject NavigationManager NavigationManager
@inject IConfiguration Configuration
@inject IClientProvider ClientProvider
<PageTitle>Тестирование экспорта</PageTitle>
@ -59,7 +61,7 @@
string messageBody;
string responseBody;
Client client;
IClient client;
ActionLogger logger = new ActionLogger();
FileMessageCapturer messageCapturer;
bool catchMessageBody;
@ -73,19 +75,8 @@
messageCapturer = new FileMessageCapturer("test/export", logger);
messageCapturer.OnFileWritten += OnFileWritten;
var brokerConfig = Configuration.GetSection("BrokerConfig").Get<BrokerConfig>();
client = new Client
{
OrgPPAGUID = brokerConfig.OrgPPAGUID,
ExecutorGUID = brokerConfig.ExecutorGUID,
UseTunnel = false,
IsPPAK = false,
Role = OrganizationRole.RSO,
Logger = logger,
MessageCapturer = messageCapturer
};
client.SetSigningCertificate(brokerConfig.CertificateSerialNumber);
var config = Configuration.GetSection("BrokerConfig").Get<BrokerConfig>();
client = ClientProvider.CreateClient(config, logger, messageCapturer);
}
public void Dispose()

View File

@ -6,6 +6,10 @@
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DefineConstants>$(DefineConstants);USE_MOCK</DefineConstants>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="8.0.20" />
<PackageReference Include="Microsoft.AspNetCore.HeaderPropagation" Version="8.0.20" />
@ -25,6 +29,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Hcs.Broker.Mock\Hcs.Broker.Mock.csproj" />
<ProjectReference Include="..\Hcs.Broker\Hcs.Broker.csproj" />
</ItemGroup>

View File

@ -1,5 +1,6 @@
using Hcs.WebApp.Components;
using Hcs.WebApp.Data;
using Hcs.WebApp.Services;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Radzen;
@ -34,6 +35,12 @@ builder.Services
.AddEntityFrameworkStores<AppIdentityDbContext>()
.AddDefaultTokenProviders();
#if USE_MOCK
builder.Services.AddTransient<IClientProvider, MockClientProvider>();
#else
builder.Services.AddTransient<IClientProvider, ClientProvider>();
#endif
var app = builder.Build();
if (!app.Environment.IsDevelopment())

View File

@ -0,0 +1,27 @@
using Hcs.Broker;
using Hcs.Broker.MessageCapturer;
using Hcs.WebApp.Config;
namespace Hcs.WebApp.Services
{
public class ClientProvider : IClientProvider
{
public IClient CreateClient(BrokerConfig config, Broker.Logger.ILogger logger, IMessageCapturer messageCapturer)
{
var client = new Client
{
OrgPPAGUID = config.OrgPPAGUID,
ExecutorGUID = config.ExecutorGUID,
UseTunnel = false,
IsPPAK = false,
Role = OrganizationRole.RSO,
Logger = logger,
MessageCapturer = messageCapturer
};
client.SetSigningCertificate(config.CertificateSerialNumber);
return client;
}
}
}

View File

@ -0,0 +1,11 @@
using Hcs.Broker;
using Hcs.Broker.MessageCapturer;
using Hcs.WebApp.Config;
namespace Hcs.WebApp.Services
{
public interface IClientProvider
{
IClient CreateClient(BrokerConfig config, Broker.Logger.ILogger logger, IMessageCapturer messageCapturer);
}
}

View File

@ -0,0 +1,19 @@
using Hcs.Broker;
using Hcs.Broker.MessageCapturer;
using Hcs.Broker.Mock;
using Hcs.WebApp.Config;
namespace Hcs.WebApp.Services
{
public class MockClientProvider : IClientProvider
{
public IClient CreateClient(BrokerConfig config, Broker.Logger.ILogger logger, IMessageCapturer messageCapturer)
{
#if USE_MOCK
return new MockClient();
#else
return null;
#endif
}
}
}