Skip to content

Commit

Permalink
Remove Moq from Instrumentation.EntityFrameworkCore.Tests (#1479)
Browse files Browse the repository at this point in the history
  • Loading branch information
ngruson authored Dec 9, 2023
1 parent 707d9c0 commit 7567a9f
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
// SPDX-License-Identifier: Apache-2.0

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Diagnostics;
using System.Linq;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Moq;
using OpenTelemetry.Instrumentation.EntityFrameworkCore.Implementation;
using OpenTelemetry.Trace;
using Xunit;
Expand All @@ -35,9 +35,9 @@ public EntityFrameworkDiagnosticListenerTests()
[Fact]
public void EntityFrameworkContextEventsInstrumentedTest()
{
var activityProcessor = new Mock<BaseProcessor<Activity>>();
var exportedItems = new List<Activity>();
using var shutdownSignal = Sdk.CreateTracerProviderBuilder()
.AddProcessor(activityProcessor.Object)
.AddInMemoryExporter(exportedItems)
.AddEntityFrameworkCoreInstrumentation().Build();

using (var context = new ItemsContext(this.contextOptions))
Expand All @@ -50,20 +50,19 @@ public void EntityFrameworkContextEventsInstrumentedTest()
Assert.Equal("ItemTwo", items[2].Name);
}

Assert.Equal(3, activityProcessor.Invocations.Count);

var activity = (Activity)activityProcessor.Invocations[1].Arguments[0];
Assert.Single(exportedItems);
var activity = exportedItems[0];

VerifyActivityData(activity);
}

[Fact]
public void EntityFrameworkEnrichDisplayNameWithEnrichWithIDbCommand()
{
var activityProcessor = new Mock<BaseProcessor<Activity>>();
var exportedItems = new List<Activity>();
var expectedDisplayName = "Text main";
using var shutdownSignal = Sdk.CreateTracerProviderBuilder()
.AddProcessor(activityProcessor.Object)
.AddInMemoryExporter(exportedItems)
.AddEntityFrameworkCoreInstrumentation(options =>
{
options.EnrichWithIDbCommand = (activity1, command) =>
Expand All @@ -84,19 +83,18 @@ public void EntityFrameworkEnrichDisplayNameWithEnrichWithIDbCommand()
Assert.Equal("ItemTwo", items[2].Name);
}

Assert.Equal(3, activityProcessor.Invocations.Count);

var activity = (Activity)activityProcessor.Invocations[1].Arguments[0];
Assert.Single(exportedItems);
var activity = exportedItems[0];

VerifyActivityData(activity, altDisplayName: $"{expectedDisplayName}");
}

[Fact]
public void EntityFrameworkContextExceptionEventsInstrumentedTest()
{
var activityProcessor = new Mock<BaseProcessor<Activity>>();
var exportedItems = new List<Activity>();
using var shutdownSignal = Sdk.CreateTracerProviderBuilder()
.AddProcessor(activityProcessor.Object)
.AddInMemoryExporter(exportedItems)
.AddEntityFrameworkCoreInstrumentation()
.Build();

Expand All @@ -112,19 +110,18 @@ public void EntityFrameworkContextExceptionEventsInstrumentedTest()
}
}

Assert.Equal(3, activityProcessor.Invocations.Count);

var activity = (Activity)activityProcessor.Invocations[1].Arguments[0];
Assert.Single(exportedItems);
var activity = exportedItems[0];

VerifyActivityData(activity, isError: true);
}

[Fact]
public void ShouldNotCollectTelemetryWhenFilterEvaluatesToFalseByDbCommand()
{
var activityProcessor = new Mock<BaseProcessor<Activity>>();
var exportedItems = new List<Activity>();
using var shutdownSignal = Sdk.CreateTracerProviderBuilder()
.AddProcessor(activityProcessor.Object)
.AddInMemoryExporter(exportedItems)
.AddEntityFrameworkCoreInstrumentation(options =>
{
options.Filter = (_, command) => !command.CommandText.Contains("Item", StringComparison.OrdinalIgnoreCase);
Expand All @@ -135,20 +132,15 @@ public void ShouldNotCollectTelemetryWhenFilterEvaluatesToFalseByDbCommand()
_ = context.Set<Item>().OrderBy(e => e.Name).ToList();
}

Assert.Equal(2, activityProcessor.Invocations.Count);

var activity = (Activity)activityProcessor.Invocations[1].Arguments[0];

Assert.False(activity.IsAllDataRequested);
Assert.False(activity.ActivityTraceFlags.HasFlag(ActivityTraceFlags.Recorded));
Assert.Empty(exportedItems);
}

[Fact]
public void ShouldCollectTelemetryWhenFilterEvaluatesToTrueByDbCommand()
{
var activityProcessor = new Mock<BaseProcessor<Activity>>();
var exportedItems = new List<Activity>();
using var shutdownSignal = Sdk.CreateTracerProviderBuilder()
.AddProcessor(activityProcessor.Object)
.AddInMemoryExporter(exportedItems)
.AddEntityFrameworkCoreInstrumentation(options =>
{
options.Filter = (_, command) => command.CommandText.Contains("Item", StringComparison.OrdinalIgnoreCase);
Expand All @@ -159,9 +151,8 @@ public void ShouldCollectTelemetryWhenFilterEvaluatesToTrueByDbCommand()
_ = context.Set<Item>().OrderBy(e => e.Name).ToList();
}

Assert.Equal(3, activityProcessor.Invocations.Count);

var activity = (Activity)activityProcessor.Invocations[1].Arguments[0];
Assert.Single(exportedItems);
var activity = exportedItems[0];

Assert.True(activity.IsAllDataRequested);
Assert.True(activity.ActivityTraceFlags.HasFlag(ActivityTraceFlags.Recorded));
Expand Down Expand Up @@ -189,9 +180,9 @@ public void ShouldCollectTelemetryWhenFilterEvaluatesToTrueByDbCommand()
[InlineData("Teradata.EntityFrameworkCore")]
public void ShouldNotCollectTelemetryWhenFilterEvaluatesToFalseByProviderName(string provider)
{
var activityProcessor = new Mock<BaseProcessor<Activity>>();
var exportedItems = new List<Activity>();
using var shutdownSignal = Sdk.CreateTracerProviderBuilder()
.AddProcessor(activityProcessor.Object)
.AddInMemoryExporter(exportedItems)
.AddEntityFrameworkCoreInstrumentation(options =>
{
options.Filter = (providerName, _) => providerName != null && providerName.Equals(provider, StringComparison.OrdinalIgnoreCase);
Expand All @@ -202,20 +193,15 @@ public void ShouldNotCollectTelemetryWhenFilterEvaluatesToFalseByProviderName(st
_ = context.Set<Item>().OrderBy(e => e.Name).ToList();
}

Assert.Equal(2, activityProcessor.Invocations.Count);

var activity = (Activity)activityProcessor.Invocations[1].Arguments[0];

Assert.False(activity.IsAllDataRequested);
Assert.False(activity.ActivityTraceFlags.HasFlag(ActivityTraceFlags.Recorded));
Assert.Empty(exportedItems);
}

[Fact]
public void ShouldCollectTelemetryWhenFilterEvaluatesToTrueByProviderName()
{
var activityProcessor = new Mock<BaseProcessor<Activity>>();
var exportedItems = new List<Activity>();
using var shutdownSignal = Sdk.CreateTracerProviderBuilder()
.AddProcessor(activityProcessor.Object)
.AddInMemoryExporter(exportedItems)
.AddEntityFrameworkCoreInstrumentation(options =>
{
options.Filter = (providerName, _) => providerName != null && providerName.Equals("Microsoft.EntityFrameworkCore.Sqlite", StringComparison.OrdinalIgnoreCase);
Expand All @@ -226,9 +212,9 @@ public void ShouldCollectTelemetryWhenFilterEvaluatesToTrueByProviderName()
_ = context.Set<Item>().OrderBy(e => e.Name).ToList();
}

Assert.Equal(3, activityProcessor.Invocations.Count);
Assert.Single(exportedItems);
var activity = exportedItems[0];

var activity = (Activity)activityProcessor.Invocations[1].Arguments[0];
Assert.True(activity.IsAllDataRequested);
Assert.True(activity.ActivityTraceFlags.HasFlag(ActivityTraceFlags.Recorded));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Moq" Version="$(MoqPkgVer)" />
<PackageReference Include="OpenTelemetry.Exporter.InMemory" Version="$(OpenTelemetryExporterInMemoryPkgVer)" />
</ItemGroup>

<ItemGroup>
Expand Down

0 comments on commit 7567a9f

Please sign in to comment.