public async Task Should_Support_Custom_Telemetry_Using_Delegate() { var fake = Substitute.For <Func <CustomTelemetryEventParams, CancellationToken, Task> >(); var(_, server) = await Initialize(options => { options.OnTelemetryEvent(fake); }, options => { }); var @event = new CustomTelemetryEventParams { CodeFolding = true, ProfileLoading = false, ScriptAnalysis = true, Pester5CodeLens = true, PromptToUpdatePackageManagement = false }; server.SendTelemetryEvent(@event); await SettleNext(); var call = fake.ReceivedCalls().Single(); var args = call.GetArguments(); args[0] .Should().BeOfType <CustomTelemetryEventParams>() .And.Subject .Should().BeEquivalentTo(@event, z => z.UsingStructuralRecordEquality().Excluding(x => x.ExtensionData)); }
public async Task Should_Support_Custom_Telemetry_Receiving_Regular_Telemetry_Using_Base_Class() { var fake = Substitute.For <TelemetryEventHandlerBase>(); var(_, server) = await Initialize(options => { options.AddHandler(fake); }, options => { }); var @event = new CustomTelemetryEventParams { CodeFolding = true, ProfileLoading = false, ScriptAnalysis = true, Pester5CodeLens = true, PromptToUpdatePackageManagement = false }; server.SendTelemetryEvent(@event); await SettleNext(); var call = fake.ReceivedCalls().Single(); var args = call.GetArguments(); var request = args[0].Should().BeOfType <TelemetryEventParams>().Which; request.ExtensionData.Should().ContainKey("codeFolding").And.Subject["codeFolding"].Should().Be(true); request.ExtensionData.Should().ContainKey("profileLoading").And.Subject["profileLoading"].Should().Be(false); request.ExtensionData.Should().ContainKey("scriptAnalysis").And.Subject["scriptAnalysis"].Should().Be(true); request.ExtensionData.Should().ContainKey("pester5CodeLens").And.Subject["pester5CodeLens"].Should().Be(true); request.ExtensionData.Should().ContainKey("promptToUpdatePackageManagement").And.Subject["promptToUpdatePackageManagement"].Should().Be(false); }
public async Task Should_Support_Custom_Telemetry_Receiving_Regular_Telemetry_Using_Delegate() { var fake = Substitute.For <Func <TelemetryEventParams, CancellationToken, Task> >(); var(_, server) = await Initialize(options => { options.OnTelemetryEvent(fake); }, options => { }); var @event = new CustomTelemetryEventParams { CodeFolding = true, ProfileLoading = false, ScriptAnalysis = true, Pester5CodeLens = true, PromptToUpdatePackageManagement = false }; server.SendTelemetryEvent(@event); await TestHelper.DelayUntil(() => fake.ReceivedCalls().Any(), CancellationToken); var call = fake.ReceivedCalls().Single(); var args = call.GetArguments(); var request = args[0].Should().BeOfType <TelemetryEventParams>().Which; request.ExtensionData.Should().ContainKey("codeFolding").And.Subject["codeFolding"].Should().Be(true); request.ExtensionData.Should().ContainKey("profileLoading").And.Subject["profileLoading"].Should().Be(false); request.ExtensionData.Should().ContainKey("scriptAnalysis").And.Subject["scriptAnalysis"].Should().Be(true); request.ExtensionData.Should().ContainKey("pester5CodeLens").And.Subject["pester5CodeLens"].Should().Be(true); request.ExtensionData.Should().ContainKey("promptToUpdatePackageManagement").And.Subject["promptToUpdatePackageManagement"].Should().Be(false); }