Add mocked broker client
This commit is contained in:
@ -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()
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
@ -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())
|
||||
|
||||
27
Hcs.WebApp/Services/ClientProvider.cs
Normal file
27
Hcs.WebApp/Services/ClientProvider.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Hcs.WebApp/Services/IClientProvider.cs
Normal file
11
Hcs.WebApp/Services/IClientProvider.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
19
Hcs.WebApp/Services/MockClientProvider.cs
Normal file
19
Hcs.WebApp/Services/MockClientProvider.cs
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user