Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tests] Add resource logging to Aspire.Hosting.* tests #5193

Merged
merged 10 commits into from
Aug 6, 2024
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

#pragma warning disable IDE0005 // Using directive is unnecessary. This warning happens when building this file in Aspire.Hosting.Tests.csproj
using Aspire.Hosting.ApplicationModel;
#pragma warning restore IDE0005 // Using directive is unnecessary.
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using Aspire.Dashboard.Components.Controls;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
using Azure.Storage.Blobs;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Xunit;
using Xunit.Abstractions;

Expand All @@ -18,7 +17,7 @@ public class AzureStorageEmulatorFunctionalTests(ITestOutputHelper testOutputHel
[RequiresDocker]
public async Task VerifyAzureStorageEmulatorResource()
{
using var builder = CreateDistributedApplicationBuilder();
using var builder = TestDistributedApplicationBuilder.Create().WithTestAndResourceLogging(testOutputHelper);
var storage = builder.AddAzureStorage("storage").RunAsEmulator().AddBlobs("BlobConnection");

using var app = builder.Build();
Expand All @@ -40,11 +39,4 @@ public async Task VerifyAzureStorageEmulatorResource()
var downloadResult = (await blobClient.DownloadContentAsync()).Value;
Assert.Equal("testValue", downloadResult.Content.ToString());
}

private TestDistributedApplicationBuilder CreateDistributedApplicationBuilder()
{
var builder = TestDistributedApplicationBuilder.Create();
builder.Services.AddXunitLogging(testOutputHelper);
return builder;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
using Elastic.Clients.Elasticsearch;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Polly;
using Xunit;
using Xunit.Abstractions;
Expand All @@ -32,7 +31,7 @@ public async Task VerifyElasticsearchResource()
.AddRetry(new() { MaxRetryAttempts = 10, Delay = TimeSpan.FromSeconds(10) })
.Build();

var builder = CreateDistributedApplicationBuilder();
using var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);

var elasticsearch = builder.AddElasticsearch("elasticsearch");

Expand Down Expand Up @@ -76,8 +75,8 @@ public async Task WithDataShouldPersistStateBetweenUsages(bool useVolume)

try
{
var builder1 = CreateDistributedApplicationBuilder();
using var builder1 = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);

var elasticsearch1 = builder1.AddElasticsearch("elasticsearch");

var password = elasticsearch1.Resource.PasswordParameter.Value;
Expand Down Expand Up @@ -128,7 +127,7 @@ await pipeline.ExecuteAsync(
}
}

var builder2 = CreateDistributedApplicationBuilder();
using var builder2 = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);
var passwordParameter2 = builder2.AddParameter("pwd");
builder2.Configuration["Parameters:pwd"] = password;
var elasticsearch2 = builder2.AddElasticsearch("elasticsearch", passwordParameter2);
Expand Down Expand Up @@ -215,13 +214,6 @@ private static async Task CreateTestData(ElasticsearchClient elasticsearchClient
Assert.Equal(s_person.Id, getResponse.Source?.Id);
}

private TestDistributedApplicationBuilder CreateDistributedApplicationBuilder()
{
var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry();
builder.Services.AddXunitLogging(testOutputHelper);
return builder;
}

private sealed class Person
{
public int Id { get; set; }
Expand Down
10 changes: 1 addition & 9 deletions tests/Aspire.Hosting.Garnet.Tests/GarnetFunctionalTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Polly;
using StackExchange.Redis;
using Xunit;
Expand All @@ -25,7 +24,7 @@ public async Task VerifyGarnetResource()
.AddRetry(new() { MaxRetryAttempts = 10, Delay = TimeSpan.FromSeconds(3) })
.Build();

var builder = CreateDistributedApplicationBuilder();
using var builder = TestDistributedApplicationBuilder.Create().WithTestAndResourceLogging(testOutputHelper);

var garnet = builder.AddGarnet("garnet");

Expand Down Expand Up @@ -60,11 +59,4 @@ await pipeline.ExecuteAsync(async token =>

}, cts.Token);
}

private TestDistributedApplicationBuilder CreateDistributedApplicationBuilder()
{
var builder = TestDistributedApplicationBuilder.Create();
builder.Services.AddXunitLogging(testOutputHelper);
return builder;
}
}
14 changes: 3 additions & 11 deletions tests/Aspire.Hosting.Kafka.Tests/KafkaFunctionalTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Polly;
using Xunit;
using Xunit.Abstractions;
Expand All @@ -22,7 +21,7 @@ public async Task VerifyKafkaResource()
{
var cts = new CancellationTokenSource(TimeSpan.FromMinutes(3));

var builder = CreateDistributedApplicationBuilder();
using var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);

var kafka = builder.AddKafka("kafka");

Expand Down Expand Up @@ -87,7 +86,7 @@ public async Task WithDataShouldPersistStateBetweenUsages(bool useVolume)

try
{
var builder1 = CreateDistributedApplicationBuilder();
using var builder1 = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);
var kafka1 = builder1.AddKafka("kafka");

if (useVolume)
Expand Down Expand Up @@ -143,7 +142,7 @@ await pipeline.ExecuteAsync(async token =>
}
}

var builder2 = CreateDistributedApplicationBuilder();
using var builder2 = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);
var kafka2 = builder2.AddKafka("kafka");

if (useVolume)
Expand Down Expand Up @@ -221,11 +220,4 @@ await pipeline.ExecuteAsync(async token =>
}
}
}

private TestDistributedApplicationBuilder CreateDistributedApplicationBuilder()
{
var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry();
builder.Services.AddXunitLogging(testOutputHelper);
return builder;
}
}
14 changes: 3 additions & 11 deletions tests/Aspire.Hosting.Milvus.Tests/MilvusFunctionalTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Milvus.Client;
using Polly;
using Xunit;
Expand All @@ -31,7 +30,7 @@ public async Task VerifyMilvusResource()
.AddRetry(new() { MaxRetryAttempts = 10, Delay = TimeSpan.FromSeconds(3), ShouldHandle = new PredicateBuilder().Handle<RpcException>() })
.Build();

var builder = CreateDistributedApplicationBuilder();
using var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);

builder.Configuration["Parameters:apikey"] = MilvusToken;
var apiKey = builder.AddParameter("apikey");
Expand Down Expand Up @@ -100,7 +99,7 @@ public async Task WithDataShouldPersistStateBetweenUsages(bool useVolume)

try
{
var builder1 = CreateDistributedApplicationBuilder();
using var builder1 = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);
builder1.Configuration["Parameters:apikey"] = MilvusToken;
var apiKey1 = builder1.AddParameter("apikey");
var milvus1 = builder1.AddMilvus("milvus1", apiKey1);
Expand Down Expand Up @@ -159,7 +158,7 @@ await pipeline.ExecuteAsync(
}
}

var builder2 = CreateDistributedApplicationBuilder();
using var builder2 = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);
builder2.Configuration["Parameters:apikey"] = MilvusToken;
var apiKey2 = builder2.AddParameter("apikey");
var milvus2 = builder2.AddMilvus("milvus2", apiKey2);
Expand Down Expand Up @@ -234,11 +233,4 @@ await pipeline.ExecuteAsync(
}
}
}

private TestDistributedApplicationBuilder CreateDistributedApplicationBuilder()
{
var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry();
builder.Services.AddXunitLogging(testOutputHelper);
return builder;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
<ItemGroup>
<Compile Include="$(RepoRoot)src\Aspire.Hosting.MongoDB\MongoDBContainerImageTags.cs" />
<Compile Include="$(SharedDir)VolumeNameGenerator.cs" Link="Utils\VolumeNameGenerator.cs" />
<Compile Include="$(RepoRoot)src\Aspire.Hosting.Testing\ResourceLoggerForwarderService.cs" Link="Utils\ResourceLoggerForwarderService.cs" />
</ItemGroup>

</Project>
19 changes: 4 additions & 15 deletions tests/Aspire.Hosting.MongoDB.Tests/MongoDbFunctionalTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,12 @@
using Aspire.Hosting.Utils;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson;
using MongoDB.Driver;
using Xunit;
using Xunit.Abstractions;
using Polly;
using Aspire.Hosting.Testing;

namespace Aspire.Hosting.MongoDB.Tests;

Expand All @@ -37,7 +35,7 @@ public async Task VerifyMongoDBResource()
.AddRetry(new() { MaxRetryAttempts = 10, Delay = TimeSpan.FromSeconds(1) })
.Build();

var builder = CreateDistributedApplicationBuilder();
using var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);

var mongodb = builder.AddMongoDB("mongodb");
var db = mongodb.AddDatabase("testdb");
Expand Down Expand Up @@ -80,7 +78,7 @@ public async Task WithDataShouldPersistStateBetweenUsages(bool useVolume)

try
{
var builder1 = CreateDistributedApplicationBuilder();
using var builder1 = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);
var mongodb1 = builder1.AddMongoDB("mongodb");
var db1 = mongodb1.AddDatabase(dbName);

Expand Down Expand Up @@ -128,7 +126,7 @@ await pipeline.ExecuteAsync(async token =>
}
}

var builder2 = CreateDistributedApplicationBuilder();
using var builder2 = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);
var mongodb2 = builder2.AddMongoDB("mongodb");
var db2 = mongodb2.AddDatabase(dbName);

Expand Down Expand Up @@ -258,7 +256,7 @@ await File.WriteAllTextAsync(initFilePath, $$"""
File.SetUnixFileMode(initFilePath, UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.GroupRead | UnixFileMode.OtherRead);
}

var builder = CreateDistributedApplicationBuilder();
using var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);

var mongodb = builder.AddMongoDB("mongodb")
.WithInitBindMount(bindMountPath);
Expand Down Expand Up @@ -324,15 +322,6 @@ private static async Task CreateTestDataAsync(IMongoDatabase mongoDatabase, Canc
item => Assert.Contains("Schindler's List", item.Name)
);
}

private TestDistributedApplicationBuilder CreateDistributedApplicationBuilder()
{
var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry();
builder.Services.AddXunitLogging(testOutputHelper);
builder.Services.AddHostedService<ResourceLoggerForwarderService>();

return builder;
}
}

public class Movie
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,4 @@
<ProjectReference Include="..\..\src\Components\Aspire.Pomelo.EntityFrameworkCore.MySql\Aspire.Pomelo.EntityFrameworkCore.MySql.csproj" />
</ItemGroup>

<ItemGroup>
<Compile Include="$(SharedDir)SecretsStore.cs" Link="Utils\SecretsStore.cs" />
<Compile Include="$(RepoRoot)src\Aspire.Hosting.Testing\ResourceLoggerForwarderService.cs" Link="Utils\ResourceLoggerForwarderService.cs" />
</ItemGroup>

</Project>
20 changes: 5 additions & 15 deletions tests/Aspire.Hosting.MySql.Tests/MySqlFunctionalTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,13 @@

using System.Data;
using Aspire.Components.Common.Tests;
using Aspire.Hosting.Testing;
using Aspire.Hosting.Utils;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using MySqlConnector;
using Polly;
using Xunit;
Expand All @@ -30,7 +28,7 @@ public async Task VerifyMySqlResource()
.AddRetry(new() { MaxRetryAttempts = 10, BackoffType = DelayBackoffType.Linear, Delay = TimeSpan.FromSeconds(2), ShouldHandle = new PredicateBuilder().Handle<MySqlException>() })
.Build();

var builder = CreateDistributedApplicationBuilder();
using var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);

var mySqlDbName = "db1";

Expand Down Expand Up @@ -84,7 +82,7 @@ public async Task WithDataShouldPersistStateBetweenUsages(bool useVolume)

try
{
var builder1 = CreateDistributedApplicationBuilder();
using var builder1 = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);

var mysql1 = builder1.AddMySql("mysql").WithEnvironment("MYSQL_DATABASE", mySqlDbName);
var password = mysql1.Resource.PasswordParameter.Value;
Expand Down Expand Up @@ -158,7 +156,7 @@ await pipeline.ExecuteAsync(async token =>
}
}

var builder2 = CreateDistributedApplicationBuilder();
using var builder2 = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);
var passwordParameter2 = builder2.AddParameter("pwd");
builder2.Configuration["Parameters:pwd"] = password;

Expand Down Expand Up @@ -270,7 +268,7 @@ public async Task VerifyWithInitBindMount()
INSERT INTO cars (brand) VALUES ('BatMobile');
""");

var builder = CreateDistributedApplicationBuilder();
using var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);

var mySqlDbName = "db1";

Expand Down Expand Up @@ -340,7 +338,7 @@ public async Task VerifyEfMySql()
.AddRetry(new() { MaxRetryAttempts = 10, BackoffType = DelayBackoffType.Linear, Delay = TimeSpan.FromSeconds(1), ShouldHandle = new PredicateBuilder().Handle<MySqlException>() })
.Build();

var builder = CreateDistributedApplicationBuilder();
var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);

var mySqlDbName = "db1";

Expand Down Expand Up @@ -395,12 +393,4 @@ await pipeline.ExecuteAsync(async token =>
Assert.Equal("BatMobile", cars[0].Brand);
}, cts.Token);
}

private TestDistributedApplicationBuilder CreateDistributedApplicationBuilder()
{
var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry();
builder.Services.AddXunitLogging(testOutputHelper);
builder.Services.AddHostedService<ResourceLoggerForwarderService>();
return builder;
}
}
Loading
Loading