public async Task ExecuteAsyncTest_WebController()
        {
            var appSettings = _serviceScopeFactory.CreateScope().ServiceProvider
                              .GetService <AppSettings>();

            appSettings !.ApplicationType = AppSettings.StarskyAppType.WebController;

            var service = new PackageTelemetryBackgroundService(_serviceScopeFactory);

            CancellationTokenSource source = new CancellationTokenSource();
            CancellationToken       token  = source.Token;

            source.Cancel();             // <- cancel before start

            MethodInfo dynMethod = service.GetType().GetMethod("ExecuteAsync",
                                                               BindingFlags.NonPublic | BindingFlags.Instance);

            if (dynMethod == null)
            {
                throw new Exception("missing ExecuteAsync");
            }
            await dynMethod.InvokeAsync(service, new object[]
            {
                token
            });

            var httpProvider = _serviceScopeFactory.CreateScope().ServiceProvider
                               .GetService <IHttpProvider>();

            var fakeHttpProvider = httpProvider as FakeIHttpProvider;

            Assert.IsTrue(fakeHttpProvider?.UrlCalled.Any(p => p.Contains(PackageTelemetry.PackageTelemetryUrl)));
        }
        public void ExecuteAsyncTest_NotWhenDisabled()
        {
            var appSettings = _serviceScopeFactory.CreateScope().ServiceProvider
                              .GetService <AppSettings>();

            appSettings !.ApplicationType = AppSettings.StarskyAppType.Admin;
            var httpProvider1 = _serviceScopeFactory.CreateScope().ServiceProvider
                                .GetService <IHttpProvider>();

            var fakeHttpProvider1 = httpProvider1 as FakeIHttpProvider;

            fakeHttpProvider1 !.UrlCalled = new List <string>();

            var service = new PackageTelemetryBackgroundService(_serviceScopeFactory);

            CancellationTokenSource source = new CancellationTokenSource();
            CancellationToken       token  = source.Token;

            source.Cancel();             // <- cancel before start

            MethodInfo dynMethod = service.GetType().GetMethod("ExecuteAsync",
                                                               BindingFlags.NonPublic | BindingFlags.Instance);

            if (dynMethod == null)
            {
                throw new Exception("missing ExecuteAsync");
            }
            dynMethod.Invoke(service, new object[]
            {
                token
            });

            var httpProvider = _serviceScopeFactory.CreateScope().ServiceProvider
                               .GetService <IHttpProvider>();

            var fakeHttpProvider = httpProvider as FakeIHttpProvider;

            Assert.IsFalse(fakeHttpProvider?.UrlCalled.Contains(PackageTelemetry.PackageTelemetryUrl));
        }