Skip to content

Commit 3eb45bd

Browse files
authored
Enable Java tests (#7)
* Enabling java tests and trying to push diagnostic logs * fixing path * Fixing the project that the tests were starting up * seems it was set wrong * Using new WaitForResource method to delay test execution * Turning up the logging * Trying something out * Not having the StandardResilienceHandler is the problem
1 parent 62eeeab commit 3eb45bd

File tree

7 files changed

+82
-52
lines changed

7 files changed

+82
-52
lines changed

.github/workflows/dotnet.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ on:
1212
jobs:
1313
build:
1414
runs-on: ubuntu-latest
15+
env:
16+
DCP_PRESERVE_EXECUTABLE_LOGS: "yes"
17+
DCP_DIAGNOSTICS_LOG_FOLDER: ${{ github.workspace }}/diagnostics
1518

1619
steps:
1720
- uses: actions/checkout@v4
@@ -35,4 +38,10 @@ jobs:
3538
run: dotnet build --no-restore
3639
- name: Test
3740
run: dotnet test --no-build --verbosity normal
38-
41+
- name: Upload build artifact
42+
uses: actions/upload-artifact@v3
43+
if: failure()
44+
with:
45+
name: build-output
46+
path: |
47+
${{ github.workspace }}/diagnostics/**

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ obj
55
*.user
66
.azure
77
appsettings.*.json
8+
*.orig

CommunityToolkit.Aspire.sln

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CommunityToolkit.Aspire.Jav
2121
EndProject
2222
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{899F0713-7FC6-4750-BAFC-AC650B35B453}"
2323
EndProject
24-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CommunityToolkit.Aspire.Java.Hosting.EndToEndTests", "test\CommunityToolkit.Aspire.Java.Hosting.EndToEndTests\CommunityToolkit.Aspire.Java.Hosting.EndToEndTests.csproj", "{E2905A71-E25D-46FC-A128-D6A366D4D751}"
24+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CommunityToolkit.Aspire.Java.Hosting.EndToEndTests", "tests\CommunityToolkit.Aspire.Java.Hosting.EndToEndTests\CommunityToolkit.Aspire.Java.Hosting.EndToEndTests.csproj", "{E2905A71-E25D-46FC-A128-D6A366D4D751}"
2525
EndProject
2626
Global
2727
GlobalSection(SolutionConfigurationPlatforms) = preSolution

Directory.Packages.props

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,23 @@
22
<PropertyGroup>
33
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
44
</PropertyGroup>
5-
65
<ItemGroup>
76
<!-- Aspire packages -->
87
<PackageVersion Include="Aspire.Hosting" Version="$(AspireVersion)" />
98
<PackageVersion Include="Aspire.Hosting.AppHost" Version="$(AspireVersion)" />
10-
9+
<PackageVersion Include="MartinCostello.Logging.XUnit" Version="0.4.0" />
1110
<!-- AspNetCore packages -->
1211
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="$(AspNetCoreVersion)" />
1312
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.6.2" />
14-
1513
<!-- .NET packages -->
1614
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="8.7.0" />
1715
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery" Version="8.0.2" />
18-
1916
<!-- OpenTelemetry packages -->
2017
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="$(OpenTelemetryVersion)" />
2118
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="$(OpenTelemetryVersion)" />
2219
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="$(OpenTelemetryVersion)" />
2320
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="$(OpenTelemetryVersion)" />
2421
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="$(OpenTelemetryVersion)" />
25-
2622
<!-- Testing packages -->
2723
<PackageVersion Include="Aspire.Hosting.Testing" Version="$(AspireVersion)" />
2824
<PackageVersion Include="coverlet.collector" Version="6.0.2" />

test/CommunityToolkit.Aspire.Java.Hosting.EndToEndTests/ProgramTests.cs

Lines changed: 0 additions & 45 deletions
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<PackageReference Include="Aspire.Hosting.Testing" />
1010
<PackageReference Include="coverlet.collector" />
1111
<PackageReference Include="FluentAssertions" />
12+
<PackageReference Include="MartinCostello.Logging.XUnit" />
1213
<PackageReference Include="Microsoft.NET.Test.Sdk" />
1314
<PackageReference Include="xunit" />
1415
<PackageReference Include="xunit.runner.visualstudio" />
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
using System.Net;
2+
using FluentAssertions;
3+
using Microsoft.Extensions.DependencyInjection;
4+
using Microsoft.Extensions.Logging;
5+
using Xunit.Abstractions;
6+
7+
namespace CommunityToolkit.Aspire.Java.Hosting.EndToEndTests;
8+
9+
public class ProgramTests(ITestOutputHelper testOutput)
10+
{
11+
[Fact]
12+
public async Task Given_Container_Resource_When_Invoked_Then_Root_Returns_OK()
13+
{
14+
// Arrange
15+
var appHost = await DistributedApplicationTestingBuilder.CreateAsync<Projects.CommunityToolkit_Aspire_Java_AppHost>();
16+
17+
appHost.Services
18+
.AddLogging(builder =>
19+
{
20+
builder.AddXUnit(testOutput);
21+
builder.SetMinimumLevel(LogLevel.Trace);
22+
})
23+
.ConfigureHttpClientDefaults(clientBuilder => clientBuilder.AddStandardResilienceHandler());
24+
25+
await using var app = await appHost.BuildAsync();
26+
var resourceNotificationService = app.Services.GetRequiredService<ResourceNotificationService>();
27+
await app.StartAsync();
28+
29+
// Act
30+
var httpClient = app.CreateHttpClient("containerapp");
31+
32+
await resourceNotificationService.WaitForResourceAsync("containerapp", KnownResourceStates.Running).WaitAsync(TimeSpan.FromSeconds(30));
33+
34+
var response = await httpClient.GetAsync("/");
35+
36+
// Assert
37+
response.StatusCode.Should().Be(HttpStatusCode.OK);
38+
}
39+
40+
[Fact]
41+
public async Task Given_Executable_Resource_When_Invoked_Then_Root_Returns_OK()
42+
{
43+
// Arrange
44+
var appHost = await DistributedApplicationTestingBuilder.CreateAsync<Projects.CommunityToolkit_Aspire_Java_AppHost>();
45+
46+
appHost.Services
47+
.AddLogging(builder =>
48+
{
49+
builder.AddXUnit(testOutput);
50+
builder.SetMinimumLevel(LogLevel.Trace);
51+
})
52+
.ConfigureHttpClientDefaults(clientBuilder => clientBuilder.AddStandardResilienceHandler());
53+
54+
await using var app = await appHost.BuildAsync();
55+
var resourceNotificationService = app.Services.GetRequiredService<ResourceNotificationService>();
56+
await app.StartAsync();
57+
58+
// Act
59+
var httpClient = app.CreateHttpClient("executableapp");
60+
61+
await resourceNotificationService.WaitForResourceAsync("executableapp", KnownResourceStates.Running).WaitAsync(TimeSpan.FromSeconds(30));
62+
63+
var response = await httpClient.GetAsync("/");
64+
65+
// Assert
66+
response.StatusCode.Should().Be(HttpStatusCode.OK);
67+
}
68+
}

0 commit comments

Comments
 (0)