示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
            }
        }