opentelemetry-dotnet-instru.../test/IntegrationTests/StackExchangeRedisTests.cs

46 lines
1.3 KiB
C#

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
#if NET6_0_OR_GREATER
using IntegrationTests.Helpers;
using Xunit.Abstractions;
namespace IntegrationTests;
[Collection(RedisCollection.Name)]
public class StackExchangeRedisTests : TestHelper
{
private readonly RedisFixture _redis;
public StackExchangeRedisTests(ITestOutputHelper output, RedisFixture redis)
: base("StackExchangeRedis", output)
{
_redis = redis;
}
[Theory]
[Trait("Category", "EndToEnd")]
[Trait("Containers", "Linux")]
[MemberData(nameof(LibraryVersion.StackExchangeRedis), MemberType = typeof(LibraryVersion))]
public void SubmitsTraces(string packageVersion)
{
using var collector = new MockSpansCollector(Output);
SetExporter(collector);
var spanCount = packageVersion == string.Empty || Version.Parse(packageVersion) >= new Version(2, 1, 50) ? 8 : 4;
for (var i = 0; i < spanCount; i++)
{
collector.Expect("OpenTelemetry.Instrumentation.StackExchangeRedis");
}
EnableBytecodeInstrumentation();
RunTestApplication(new()
{
Arguments = $"--redis {_redis.Port}",
PackageVersion = packageVersion
});
collector.AssertExpectations();
}
}
#endif