Enhance export test

This commit is contained in:
2025-10-02 18:30:36 +09:00
parent c180209322
commit 6c759ebe20
2 changed files with 63 additions and 5 deletions

View File

@ -12,6 +12,10 @@ namespace Hcs.Broker.MessageCapturer
private readonly string directory = directory; private readonly string directory = directory;
private readonly ILogger logger = logger; private readonly ILogger logger = logger;
public string LastFileName { get; private set; }
public event Action<string> OnFileWritten;
public void CaptureMessage(bool sent, string messageBody) public void CaptureMessage(bool sent, string messageBody)
{ {
var index = 0; var index = 0;
@ -43,6 +47,10 @@ namespace Hcs.Broker.MessageCapturer
logger?.WriteLine($"Capturing message to file {fileName}..."); logger?.WriteLine($"Capturing message to file {fileName}...");
File.WriteAllText(fileName, messageBody, Encoding.UTF8); File.WriteAllText(fileName, messageBody, Encoding.UTF8);
LastFileName = fileName;
OnFileWritten?.Invoke(fileName);
} }
} }
} }

View File

@ -6,6 +6,8 @@
@using Hcs.Service.Async.Nsi @using Hcs.Service.Async.Nsi
@using Hcs.WebApp.Components.Shared @using Hcs.WebApp.Components.Shared
@inject NavigationManager NavigationManager
<PageTitle>Тестирование экспорта</PageTitle> <PageTitle>Тестирование экспорта</PageTitle>
<RadzenSplitter Orientation="Orientation.Vertical" Style="height: 100%; border: 1px solid rgba(0,0,0,.08);"> <RadzenSplitter Orientation="Orientation.Vertical" Style="height: 100%; border: 1px solid rgba(0,0,0,.08);">
@ -16,7 +18,7 @@
<RadzenStack JustifyContent="JustifyContent.SpaceBetween" Gap="1rem"> <RadzenStack JustifyContent="JustifyContent.SpaceBetween" Gap="1rem">
<RadzenStack Orientation="Orientation.Vertical" AlignItems="AlignItems.Start" JustifyContent="JustifyContent.Normal"> <RadzenStack Orientation="Orientation.Vertical" AlignItems="AlignItems.Start" JustifyContent="JustifyContent.Normal">
<RadzenText TextStyle="TextStyle.H6">Сервис nsi</RadzenText> <RadzenText TextStyle="TextStyle.H6">Сервис nsi</RadzenText>
<RadzenButton Click=@(() => OnNsiExportItem1Click()) Text="Экспорт НСИ 1" ButtonStyle="ButtonStyle.Primary" /> <RadzenButton Click=@(() => OnNsiExportItem1Click()) Disabled=@interactable Text="Экспорт НСИ 1" ButtonStyle="ButtonStyle.Primary" />
</RadzenStack> </RadzenStack>
</RadzenStack> </RadzenStack>
</RadzenCard> </RadzenCard>
@ -27,8 +29,10 @@
<RadzenTabs RenderMode="TabRenderMode.Client" Style="height: 100%;"> <RadzenTabs RenderMode="TabRenderMode.Client" Style="height: 100%;">
<Tabs> <Tabs>
<RadzenTabsItem Text="Запрос"> <RadzenTabsItem Text="Запрос">
<RadzenTextArea @bind-Value=@messageBody Disabled="true" />
</RadzenTabsItem> </RadzenTabsItem>
<RadzenTabsItem Text="Результат"> <RadzenTabsItem Text="Результат">
<RadzenTextArea @bind-Value=@responseBody Disabled="true" />
</RadzenTabsItem> </RadzenTabsItem>
</Tabs> </Tabs>
</RadzenTabs> </RadzenTabs>
@ -40,13 +44,22 @@
@code { @code {
EventConsole console = default!; EventConsole console = default!;
ActionLogger logger = new ActionLogger(); bool interactable = true;
string messageBody;
string responseBody;
Client client; Client client;
ActionLogger logger = new ActionLogger();
FileMessageCapturer messageCapturer;
bool catchMessageBody;
public Export() public Export()
{ {
logger.OnWriteLine += OnLog; logger.OnWriteLine += OnLog;
messageCapturer = new FileMessageCapturer("test/export", logger);
messageCapturer.OnFileWritten += OnFileWritten;
client = new Client client = new Client
{ {
OrgPPAGUID = "ccd7fa02-a2bf-428a-984b-faef69ae0eb2", OrgPPAGUID = "ccd7fa02-a2bf-428a-984b-faef69ae0eb2",
@ -55,7 +68,7 @@
IsPPAK = false, IsPPAK = false,
Role = OrganizationRole.RSO, Role = OrganizationRole.RSO,
Logger = logger, Logger = logger,
MessageCapturer = new FileMessageCapturer("test/export", logger) MessageCapturer = messageCapturer
}; };
client.SetSigningCertificate("0636D2330032B3C38A4A26D765C787C248"); client.SetSigningCertificate("0636D2330032B3C38A4A26D765C787C248");
@ -66,8 +79,45 @@
console.Log(log); console.Log(log);
} }
void OnNsiExportItem1Click() void OnFileWritten(string fileName)
{ {
client.Nsi.ExportDataProviderNsiItemAsync(exportDataProviderNsiItemRequestRegistryNumber.Item1); if (catchMessageBody)
{
catchMessageBody = false;
messageBody = File.ReadAllText(fileName);
}
}
async Task OnNsiExportItem1Click()
{
try
{
StartExport();
await client.Nsi.ExportDataProviderNsiItemAsync(exportDataProviderNsiItemRequestRegistryNumber.Item1);
EndExport();
}
catch
{
NavigationManager.NavigateTo("/error");
}
}
void StartExport()
{
interactable = false;
messageBody = string.Empty;
responseBody = string.Empty;
catchMessageBody = true;
console.Clear();
}
void EndExport()
{
interactable = true;
responseBody = File.ReadAllText(messageCapturer.LastFileName);
} }
} }