Skip to content

Commit

Permalink
Add test base classes (#90)
Browse files Browse the repository at this point in the history
* Add test classes

* change filename

---------

Co-authored-by: Aaron Powell <me@aaron-powell.com>
  • Loading branch information
Alirexaa and aaronpowell authored Oct 17, 2024
1 parent bd5e72f commit 98dc9c9
Show file tree
Hide file tree
Showing 15 changed files with 1,071 additions and 1 deletion.
5 changes: 4 additions & 1 deletion Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,23 @@
<PackageVersion Include="Aspire.Hosting" Version="$(AspireVersion)" />
<PackageVersion Include="Aspire.Hosting.AppHost" Version="$(AspireVersion)" />
<PackageVersion Include="Aspire.Hosting.NodeJS" Version="$(AspireVersion)" />
<PackageVersion Include="JsonSchema.Net" Version="7.2.3" />
<!-- AspNetCore packages -->
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="$(AspNetCoreVersion)" />
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.6.2" />
<!-- .NET packages -->
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="8.7.0" />
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery" Version="8.0.2" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.1" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="8.0.10" />
<!-- OpenTelemetry packages -->
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="$(OpenTelemetryVersion)" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="$(OpenTelemetryVersion)" />
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="$(OpenTelemetryVersion)" />
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="$(OpenTelemetryVersion)" />
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="$(OpenTelemetryVersion)" />
<PackageVersion Include="OpenTelemetry.Exporter.InMemory" Version="$(OpenTelemetryVersion)" />
<!-- Testing packages -->
<PackageVersion Include="Aspire.Hosting.Testing" Version="$(AspireVersion)" />
<PackageVersion Include="coverlet.collector" Version="6.0.2" />
Expand All @@ -33,6 +37,5 @@
<PackageVersion Include="OllamaSharp" Version="3.0.7" />
<!-- Build dependencies -->
<PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="3.3.4" />

</ItemGroup>
</Project>
58 changes: 58 additions & 0 deletions tests/Aspire.CommunityToolkit.Testing/ActivityNotifier.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
// Copied from https://github.com/dotnet/aspire/blob/b51d08a617a60ae30f8305d98f1e34e1ed90da1a/tests/Aspire.Components.Common.Tests/ActivityNotifier.cs

// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Threading.Channels;
using OpenTelemetry;

namespace Aspire.Components.Common.Tests;

/// <summary>
/// An OpenTelemetry processor that can notify callers when it has processed an Activity.
/// </summary>
public sealed class ActivityNotifier : BaseProcessor<Activity>
{
private readonly Channel<Activity> _activityChannel = Channel.CreateUnbounded<Activity>();

public async Task<List<Activity>> TakeAsync(int count, TimeSpan timeout)
{
var activityList = new List<Activity>();
using var cts = new CancellationTokenSource(timeout);
await foreach (var activity in WaitAsync(cts.Token))
{
activityList.Add(activity);
if (activityList.Count == count)
{
break;
}
}

return activityList;
}

public override void OnEnd(Activity data)
{
_activityChannel.Writer.TryWrite(data);
}

private async IAsyncEnumerable<Activity> WaitAsync([EnumeratorCancellation] CancellationToken cancellationToken)
{
await foreach (var activity in _activityChannel.Reader.ReadAllAsync(cancellationToken).ConfigureAwait(false))
{
yield return activity;
}
}

protected override void Dispose(bool disposing)
{
if (disposing)
{
_activityChannel.Writer.TryComplete();
}

base.Dispose(disposing);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@
and avoids problems with `dotnet pack`.
See https://xunit.github.io/docs/nuget-packages and the special note in https://xunit.github.io/releases/2.3.
-->
<PackageReference Include="JsonSchema.Net" />
<PackageReference Include="xunit.extensibility.execution" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" />
<PackageReference Include="Microsoft.Extensions.Hosting" />
<PackageReference Include="OpenTelemetry.Exporter.InMemory" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" />
</ItemGroup>
</Project>
Loading

0 comments on commit 98dc9c9

Please sign in to comment.