public async Task GetViaInteractiveRest() { //TestCommon.Instance.Mocking = false; bool requestPassed = false; int numberOfRequestsPassed = 0; // Configure fake telemetry manager var telemetryManager = new TestTelemetryManager((TestCommon.Instance.BuildContextFactory() as TestPnPContextFactory).GetGlobalSettingsOptions()) { TelemetryEvent = (properties, eventName) => { requestPassed = true; numberOfRequestsPassed++; if (numberOfRequestsPassed == 3) { // The first 2 requests are initializing data, ignore them Assert.IsTrue(properties["Model"] == "PnP.Core.Model.SharePoint.Web"); Assert.IsTrue(properties["ApiType"] == "SPORest"); Assert.IsTrue(properties["ApiMethod"] == "GET"); Assert.IsTrue(properties["Operation"] == "Get"); } } }; // GetContextWithTelemetryManagerAsync will only result on telemetry Request events, the init event will not fire using (var context = await TestCommon.Instance.GetContextWithTelemetryManagerAsync(TestCommon.TestSite, telemetryManager)) { // Perform a get that will be resolved via an interactive rest request var api = new ApiCall($"_api/web?$select=Id%2cWelcomePage", ApiType.SPORest) { Interactive = true }; await(context.Web as Web).RequestAsync(api, HttpMethod.Get, "GetAsync"); // Verify the telemetry events did fire Assert.IsTrue(requestPassed); Assert.IsTrue(numberOfRequestsPassed == 3); } }
public async Task GetViaCSOM() { //TestCommon.Instance.Mocking = false; bool requestPassed = false; int numberOfRequestsPassed = 0; // Configure fake telemetry manager var telemetryManager = new TestTelemetryManager((TestCommon.Instance.BuildContextFactory() as TestPnPContextFactory).GetGlobalSettingsOptions()) { TelemetryEvent = (properties, eventName) => { requestPassed = true; numberOfRequestsPassed++; if (numberOfRequestsPassed == 3) { // The first 2 requests are initializing data, ignore them Assert.IsTrue(properties["Model"] == "PnP.Core.Model.SharePoint.Web"); Assert.IsTrue(properties["ApiType"] == "CSOM"); Assert.IsTrue(properties["ApiMethod"] == "POST"); Assert.IsTrue(properties["Operation"] == "Get"); } } }; // GetContextWithTelemetryManagerAsync will only result on telemetry Request events, the init event will not fire using (var context = await TestCommon.Instance.GetContextWithTelemetryManagerAsync(TestCommon.TestSite, telemetryManager)) { // Perform a get that will be resolved via CSOM var apiCall = new ApiCall(new List <IRequest <object> >() { new GetTitleRequest() }); await(context.Web as Web).RawRequestAsync(apiCall, HttpMethod.Post, "Get"); // Verify the telemetry events did fire Assert.IsTrue(requestPassed); Assert.IsTrue(numberOfRequestsPassed == 3); } }
public async Task GetViaGraph() { //TestCommon.Instance.Mocking = false; bool requestPassed = false; int numberOfRequestsPassed = 0; // Configure fake telemetry manager var telemetryManager = new TestTelemetryManager((TestCommon.Instance.BuildContextFactory() as TestPnPContextFactory).GetGlobalSettingsOptions()) { TelemetryEvent = (properties, eventName) => { requestPassed = true; numberOfRequestsPassed++; if (numberOfRequestsPassed == 3) { // The first 2 requests are initializing data, ignore them Assert.IsTrue(properties["Model"] == "PnP.Core.Model.SharePoint.Web"); Assert.IsTrue(properties["ApiType"] == "Graph"); Assert.IsTrue(properties["ApiMethod"] == "GET"); Assert.IsTrue(properties["Operation"] == "Get"); } } }; // GetContextWithTelemetryManagerAsync will only result on telemetry Request events, the init event will not fire using (var context = await TestCommon.Instance.GetContextWithTelemetryManagerAsync(TestCommon.TestSite, telemetryManager)) { // Perform a get that will be resolved via Graph var web = await context.Web.GetAsync(p => p.Title); // Verify the telemetry events did fire Assert.IsTrue(requestPassed); Assert.IsTrue(numberOfRequestsPassed == 3); } }