Headless CMS and Content Managment Hub
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

98 lines
3.1 KiB

// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschraenkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using Microsoft.Extensions.DependencyInjection;
using Squidex.ClientLibrary;
using Squidex.ClientLibrary.Management;
using Xunit;
namespace TestSuite.Fixtures;
public class ClientFixture : IAsyncLifetime
{
public ClientWrapper Squidex { get; private set; }
public string AppName => Client.Options.AppName;
public string ClientId => Client.Options.ClientId;
public string ClientSecret => Client.Options.ClientSecret;
public string Url => Client.Options.Url;
public ISquidexClient Client => Squidex.Client;
static ClientFixture()
{
VerifierSettings.IgnoreMember("AppName");
VerifierSettings.IgnoreMember("Created");
VerifierSettings.IgnoreMember("CreatedBy");
VerifierSettings.IgnoreMember("EditToken");
VerifierSettings.IgnoreMember("Href");
VerifierSettings.IgnoreMember("LastModified");
VerifierSettings.IgnoreMember("LastModifiedBy");
VerifierSettings.IgnoreMember("RoleProperties");
VerifierSettings.IgnoreMember("SchemaName");
VerifierSettings.IgnoreMembersWithType<DateTimeOffset>();
}
public Task<(ISquidexClient, AppDto)> PostAppAsync(string name = null)
{
name ??= Guid.NewGuid().ToString();
var createRequest = new CreateAppDto
{
Name = name
};
return PostAppAsync(createRequest);
}
public async Task<(ISquidexClient, AppDto)> PostAppAsync(CreateAppDto request)
{
var services =
new ServiceCollection()
.AddSquidexClient(options =>
{
options.AppName = request.Name;
options.ClientId = ClientId;
options.ClientSecret = ClientSecret;
options.Url = Client.Options.Url;
options.ReadResponseAsString = true;
})
.AddSquidexHttpClient()
.ConfigurePrimaryHttpMessageHandler(() =>
{
return new HttpClientHandler
{
ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
};
}).Services
.BuildServiceProvider();
var client = services.GetRequiredService<ISquidexClient>();
return (client, await client.Apps.PostAppAsync(request));
}
public virtual async Task InitializeAsync()
{
Squidex = await Factories.CreateAsync(nameof(ClientWrapper), async () =>
{
var clientManager = new ClientWrapper();
await clientManager.ConnectAsync();
return clientManager;
});
}
public virtual Task DisposeAsync()
{
return Task.CompletedTask;
}
}