Skip to content

Commit

Permalink
Add functional tests for PgAdmin and RedisCommander.
Browse files Browse the repository at this point in the history
  • Loading branch information
mitchdenny committed Sep 1, 2024
1 parent 84bd9f7 commit 2d9a045
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 0 deletions.
28 changes: 28 additions & 0 deletions tests/Aspire.Hosting.PostgreSQL.Tests/PostgresFunctionalTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@
// The .NET Foundation licenses this file to you under the MIT license.

using System.Data;
using System.Net;
using Aspire.Components.Common.Tests;
using Aspire.Hosting.ApplicationModel;
using Aspire.Hosting.Postgres;
using Aspire.Hosting.Testing;
using Aspire.Hosting.Tests.Utils;
using Aspire.Hosting.Utils;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
Expand All @@ -17,6 +21,30 @@ namespace Aspire.Hosting.PostgreSQL.Tests;

public class PostgresFunctionalTests(ITestOutputHelper testOutputHelper)
{
[Fact]
[RequiresDocker]
public async Task VerifyPgAdminResource()
{
using var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);

IResourceBuilder<PgAdminContainerResource>? adminBuilder = null;
var redis = builder.AddPostgres("postgres").WithPgAdmin(c => adminBuilder = c);
Assert.NotNull(adminBuilder);

using var app = builder.Build();

await app.StartAsync();

await app.WaitForTextAsync("Listening at", resourceName: adminBuilder.Resource.Name);

var client = app.CreateHttpClient(adminBuilder.Resource.Name, "http");

var endpoint = redis.GetEndpoint("tcp");
var path = $"/";
var response = await client.GetAsync(path);
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}

[Fact]
[RequiresDocker]
public async Task VerifyPostgresResource()
Expand Down
28 changes: 28 additions & 0 deletions tests/Aspire.Hosting.Redis.Tests/RedisFunctionalTests.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System.Net;
using Aspire.Components.Common.Tests;
using Aspire.Hosting.ApplicationModel;
using Aspire.Hosting.Testing;
using Aspire.Hosting.Tests.Utils;
using Aspire.Hosting.Utils;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
Expand All @@ -14,6 +18,30 @@ namespace Aspire.Hosting.Redis.Tests;

public class RedisFunctionalTests(ITestOutputHelper testOutputHelper)
{
[Fact]
[RequiresDocker]
public async Task VerifyRedisCommanderResource()
{
using var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);

IResourceBuilder<RedisCommanderResource>? commanderBuilder = null;
var redis = builder.AddRedis("redis").WithRedisCommander(c => commanderBuilder = c);
Assert.NotNull(commanderBuilder);

using var app = builder.Build();

await app.StartAsync();

await app.WaitForTextAsync("Redis Connection", resourceName: commanderBuilder.Resource.Name);

var client = app.CreateHttpClient(commanderBuilder.Resource.Name, "http");

var endpoint = redis.GetEndpoint("tcp");
var path = $"/apiv2/server/R:{endpoint.ContainerHost}:{endpoint.Port}:0/info";
var response = await client.GetAsync(path);
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}

[Fact]
[RequiresDocker]
public async Task VerifyRedisResource()
Expand Down

0 comments on commit 2d9a045

Please sign in to comment.