Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ bin/
obj/
/packages/
riderModule.iml
/_ReSharper.Caches/
/_ReSharper.Caches/
**/modules/_protected/
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
6 changes: 3 additions & 3 deletions OptimizelyTestContainers.sln
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OptimizelyTestContainers.Tests", "test\OptimizelyTestContainers.Tests\OptimizelyTestContainers.Tests.csproj", "{60DAC0B9-1D46-4D3A-BC27-4B7BE193AB4E}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OptimizelyTestContainers.Tests", "src\OptimizelyTestContainers.Tests\OptimizelyTestContainers.Tests.csproj", "{60DAC0B9-1D46-4D3A-BC27-4B7BE193AB4E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Optimizely.TestContainers.Shared", "Optimizely.TestContainers.Shared\Optimizely.TestContainers.Shared.csproj", "{E4204C7A-7CC7-40FB-BFE2-D36B7286D7D3}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Optimizely.TestContainers.Shared", "src\Optimizely.TestContainers.Shared\Optimizely.TestContainers.Shared.csproj", "{E4204C7A-7CC7-40FB-BFE2-D36B7286D7D3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Optimizely.TestContainers.Commerce.Tests", "Optimizely.TestContainers.Commerce.Tests\Optimizely.TestContainers.Commerce.Tests.csproj", "{63D88C12-0DF6-4C82-939C-1FF0B564B63E}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Optimizely.TestContainers.Commerce.Tests", "src\Optimizely.TestContainers.Commerce.Tests\Optimizely.TestContainers.Commerce.Tests.csproj", "{63D88C12-0DF6-4C82-939C-1FF0B564B63E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down
6 changes: 3 additions & 3 deletions OptimizelyTestContainers.slnx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<Solution>
<Project Path="Optimizely.TestContainers.Commerce.Tests\Optimizely.TestContainers.Commerce.Tests.csproj" Type="Classic C#" />
<Project Path="Optimizely.TestContainers.Shared\Optimizely.TestContainers.Shared.csproj" Type="Classic C#" />
<Project Path="test/OptimizelyTestContainers.Tests/OptimizelyTestContainers.Tests.csproj" />
<Project Path="src/Optimizely.TestContainers.Commerce.Tests\Optimizely.TestContainers.Commerce.Tests.csproj" />
<Project Path="src/Optimizely.TestContainers.Shared\Optimizely.TestContainers.Shared.csproj" />
<Project Path="src/OptimizelyTestContainers.Tests/OptimizelyTestContainers.Tests.csproj" />
</Solution>
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ namespace Optimizely.TestContainers.Commerce.Tests;

public class CommerceCatalogIntegrationTests() : OptimizelyIntegrationTestBase(includeCommerce: true)
{
protected override void ConfiureWebHostBuilder(IWebHostBuilder webHostBuilder)
protected override void ConfigureWebHostBuilder(IWebHostBuilder webHostBuilder)
{
webHostBuilder.UseStartup<Startup>();
}
Expand Down Expand Up @@ -57,6 +57,7 @@ public void Can_Save_Catalog_And_Node_And_Product()
Assert.NotNull(testAlienProductReference);

// Act
aliensCatalog = contentRepository.Get<CatalogContent>(alienCatalogReference);
aliensNode = contentRepository.Get<NodeContent>(aliensNodeReference);
testAlienProduct = contentRepository.Get<TestProduct>(testAlienProductReference);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,37 +14,32 @@ public abstract class OptimizelyIntegrationTestBase(bool includeCommerce) : IAsy
{
private IHost _host = null!;

// Since we use same container with different db names we can remove one of these :P
private MsSqlContainer _databaseContainer = null!;

protected IServiceProvider Services { get; private set; } = null!;

public virtual async Task InitializeAsync()
{
// Create Cms SQL Server container
// Create SQL Server container
var container = await CreateDatabaseContainer();

// Create CMS databse
var cmsDatabaseConnectionString = await CreateNamedDatabaseConnectionString(container, "Cms");
// Create CMS database
var cmsDatabaseConnectionString = await CreateNamedDatabase(container, "Cms");

string? commerceDatabaseConnectionString = null;
if (includeCommerce)
{
commerceDatabaseConnectionString = await CreateNamedDatabaseConnectionString(container, "Commerce");
// Create Commerce database
commerceDatabaseConnectionString = await CreateNamedDatabase(container, "Commerce");
}


// Build CMS host
_host = Host.CreateDefaultBuilder()
.ConfigureWebHostDefaults(webHostBuilder =>
{
webHostBuilder
.ConfigureServices((context, services) =>
{
// TODO: Only include in CMS test
// Add data importer service to setup default content for the tests
//services.AddTransient<OptimizelyDataImporter>();

// Must be set here too for initialization to work for CMS
services.Configure<DataAccessOptions>(o =>
{
Expand All @@ -62,8 +57,8 @@ public virtual async Task InitializeAsync()
configBuilder.AddInMemoryCollection(testSettings);
});

// To configure aps separately with Cms and Commerce Statup files in separate projects
ConfiureWebHostBuilder(webHostBuilder);
// To configure apps separately with Cms and Commerce Startup files in separate projects
ConfigureWebHostBuilder(webHostBuilder);
})
.ConfigureCmsDefaults()
.Build();
Expand All @@ -78,7 +73,7 @@ public virtual async Task InitializeAsync()
await _host.StartAsync();
}

protected abstract void ConfiureWebHostBuilder(IWebHostBuilder webHostBuilder);
protected abstract void ConfigureWebHostBuilder(IWebHostBuilder webHostBuilder);

public async Task DisposeAsync()
{
Expand All @@ -89,19 +84,17 @@ public async Task DisposeAsync()

private async Task<MsSqlContainer> CreateDatabaseContainer()
{
var container = new MsSqlBuilder()
_databaseContainer = new MsSqlBuilder()
.WithImage("mcr.microsoft.com/mssql/server:2022-latest")
.WithPassword("yourStrong(!)Password")
.Build();

await container.StartAsync();

_databaseContainer = container;
await _databaseContainer.StartAsync();

return _databaseContainer;
}

private async Task<string> CreateNamedDatabaseConnectionString(MsSqlContainer container, string databaseName)
private async Task<string> CreateNamedDatabase(MsSqlContainer container, string databaseName)
{
databaseName = $"{GetType().Name}-{databaseName}";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ namespace OptimizelyTestContainers.Tests;

public class NewsPageIntegrationTest() : OptimizelyIntegrationTestBase(includeCommerce: false)
{
protected override void ConfiureWebHostBuilder(IWebHostBuilder webHostBuilder)
protected override void ConfigureWebHostBuilder(IWebHostBuilder webHostBuilder)
{
webHostBuilder.UseStartup<Startup>();

Expand All @@ -35,7 +35,7 @@ public void Can_Create_And_Read_NewsPage()
var episerverDataFile = Path.Combine(basePath, "DefaultSiteContent.episerverdata");
var dataImporter = Services.GetRequiredService<OptimizelyDataImporter>();

// Run data importer service to setup default content for the tests
// Run data importer service to set up default content for the tests
dataImporter.Import(episerverDataFile);

// Find StartPage from root
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\Optimizely.TestContainers.Shared\Optimizely.TestContainers.Shared.csproj" />
<ProjectReference Include="..\Optimizely.TestContainers.Shared\Optimizely.TestContainers.Shared.csproj" />
</ItemGroup>

<ItemGroup>
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.