fix ASC.Webhooks.Tests

This commit is contained in:
Vashchuk Nikita 2021-08-27 00:15:47 +03:00
parent 45d221a109
commit e5b40b3d0c
3 changed files with 25 additions and 12 deletions

View File

@ -67,10 +67,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Core.Common.Tests", "co
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Notify.Textile.Tests", "common\Tests\ASC.Notify.Textile.Tests\ASC.Notify.Textile.Tests.csproj", "{8FAD3D1B-3ADC-470C-9933-CAE1B95A8599}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Webhooks", "common\ASC.Webhooks\ASC.Webhooks.csproj", "{A0475D4F-29B7-490C-85C2-8AFD60118B35}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Webhooks.Core", "common\ASC.Webhooks.Core\ASC.Webhooks.Core.csproj", "{A0475D4F-29B7-490C-85C2-8AFD60118B35}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Webhooks.Tests", "common\Tests\ASC.Webhooks.Tests\ASC.Webhooks.Tests.csproj", "{B48C0E24-EBEB-4AF9-891B-D28BB4A9461E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ASC.Webhooks.Service", "common\services\ASC.Webhooks.Service\ASC.Webhooks.Service.csproj", "{23310CB9-1A14-4ED5-BF81-8BD38277FEFE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -213,6 +215,10 @@ Global
{B48C0E24-EBEB-4AF9-891B-D28BB4A9461E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B48C0E24-EBEB-4AF9-891B-D28BB4A9461E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B48C0E24-EBEB-4AF9-891B-D28BB4A9461E}.Release|Any CPU.Build.0 = Release|Any CPU
{23310CB9-1A14-4ED5-BF81-8BD38277FEFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{23310CB9-1A14-4ED5-BF81-8BD38277FEFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{23310CB9-1A14-4ED5-BF81-8BD38277FEFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{23310CB9-1A14-4ED5-BF81-8BD38277FEFE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -5,9 +5,11 @@ using System.Reflection;
using System.Threading.Tasks;
using ASC.Common;
using ASC.Common.Caching;
using ASC.Common.Utils;
using ASC.Core.Common.EF;
using ASC.Webhooks.Dao;
using ASC.Webhooks.Core;
using ASC.Webhooks.Core.Dao;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
@ -25,6 +27,7 @@ namespace ASC.Webhooks.Tests
protected IHost host;
protected WebhookSender webhookSender;
protected RequestHistory requestHistory;
protected Settings settings;
protected string TestConnection = "Server=localhost;Database=onlyoffice_test;User ID=dev;Password=dev;Pooling=true;Character Set=utf8;AutoEnlist=false;SSL Mode=none;AllowPublicKeyRetrieval=True";
protected static int port = 8867;
@ -64,12 +67,14 @@ namespace ASC.Webhooks.Tests
.ConfigureServices(services =>
{
services.AddControllers();
services.AddMemoryCache();
var dIHelper = new DIHelper();
dIHelper.Configure(services);
dIHelper.TryAdd<DbWorker>();
dIHelper.TryAdd<TestController>();
dIHelper.TryAdd<WebhookSender>();
dIHelper.TryAdd(typeof(ICacheNotify<>), typeof(KafkaCache<>));
})
.Configure(app =>
{
@ -99,6 +104,7 @@ namespace ASC.Webhooks.Tests
serviceProvider = host.Services;
webhookSender = serviceProvider.GetService<WebhookSender>();
requestHistory = serviceProvider.GetService<RequestHistory>();
settings = serviceProvider.GetService<Settings>();
}
private void Migrate(IServiceProvider serviceProvider, string testAssembly = null)

View File

@ -12,7 +12,8 @@ using ASC.Common.Logging;
using ASC.Core;
using ASC.Core.Tenants;
using ASC.Web.Webhooks;
using ASC.Webhooks.Dao.Models;
using ASC.Webhooks.Core;
using ASC.Webhooks.Core.Dao.Models;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
@ -43,6 +44,7 @@ namespace ASC.Webhooks.Tests
{
var scope = host.Services.CreateScope();
var dbWorker = scope.ServiceProvider.GetService<DbWorker>();
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
var id = 1;
var testWebhookRequest = new WebhookRequest { Id = id };
@ -63,11 +65,10 @@ namespace ASC.Webhooks.Tests
try
{
dbWorker.AddWebhookConfig(testWebhookConfig);
var tenantManager = new TenantManager();
tenantManager.SetCurrentTenant(testTenant);
dbWorker.AddWebhookConfig(testWebhookConfig);
var mockedLog = new Mock<IOptionsMonitor<ILog>>();
mockedLog.Setup(a => a.Get("ASC.Webhooks")).Verifiable();
@ -83,7 +84,6 @@ namespace ASC.Webhooks.Tests
{
Assert.Fail(ex.ToString());
}
var dadad = dbWorker.ReadFromJournal(id);
Assert.AreEqual(dbWorker.ReadFromJournal(id), testWebhooksEntry);
}
@ -94,13 +94,16 @@ namespace ASC.Webhooks.Tests
var scope = host.Services.CreateScope();
var serviceProvider = scope.ServiceProvider;
var dbWorker = serviceProvider.GetService<DbWorker>();
var tenantManager = serviceProvider.GetService<TenantManager>();
var successedId = dbWorker.ConfigsNumber() + 1;
var failedId = successedId + 1;
var testTenant = new Tenant(2, "testWebhooksSender");
var successWebhookConfig = new WebhooksConfig { ConfigId = successedId, SecretKey = secretKey, TenantId = testTenant.TenantId, Uri = $"{URI}SuccessRequest/" };
var failedWebhookConfig = new WebhooksConfig { ConfigId = failedId, SecretKey = secretKey, TenantId = testTenant.TenantId, Uri = $"{URI}FailedRequest/" };
tenantManager.SetCurrentTenant(testTenant);
var successWebhookConfig = new WebhooksConfig { ConfigId = successedId, SecretKey = secretKey, Uri = $"{URI}SuccessRequest/" };
var failedWebhookConfig = new WebhooksConfig { ConfigId = failedId, SecretKey = secretKey, Uri = $"{URI}FailedRequest/" };
dbWorker.AddWebhookConfig(successWebhookConfig);
dbWorker.AddWebhookConfig(failedWebhookConfig);
@ -113,7 +116,7 @@ namespace ASC.Webhooks.Tests
mockedLog.Setup(a => a.Error(It.IsAny<string>())).Verifiable();
var mockedLogOptions = new Mock<IOptionsMonitor<ILog>>();
mockedLogOptions.Setup(a => a.Get("ASC.Webhooks")).Returns(mockedLog.Object).Verifiable();
mockedLogOptions.Setup(a => a.Get("ASC.Webhooks.Core")).Returns(mockedLog.Object).Verifiable();
var source = new CancellationTokenSource();
var token = source.Token;
@ -121,8 +124,6 @@ namespace ASC.Webhooks.Tests
var SuccessedWebhookRequest = new WebhookRequest { Id = successWebhookPayloadId };
var FailedWebhookRequest = new WebhookRequest { Id = failedWebhookPayloadId };
var settings = new Settings();
var sender = new WebhookSender(mockedLogOptions.Object, serviceProvider, settings);
await sender.Send(SuccessedWebhookRequest, token);
await sender.Send(FailedWebhookRequest, token);