public void ListenToCompletionDoesNotThrowInRelease() { var provider = Substitutes.GetFullyMockedServiceProvider(); using (var p = new GitHubServiceProvider(provider)) { #if DEBUG Assert.ThrowsAny<InvalidOperationException>(() => { #endif p.ListenToCompletionState(); #if DEBUG }); #endif } }
async Task<object> CreateService(IAsyncServiceContainer container, CancellationToken cancellationToken, Type serviceType) { if (serviceType == null) return null; if (serviceType == typeof(IUIProvider)) { var result = new GitHubServiceProvider(this); await result.Initialize(); return result; } else if (serviceType == typeof(IMenuProvider)) { var sp = await GetServiceAsync(typeof(IUIProvider)) as IUIProvider; return new MenuProvider(sp); } else if (serviceType == typeof(IUsageTracker)) { var uiProvider = await GetServiceAsync(typeof(IUIProvider)) as IUIProvider; return new UsageTracker(uiProvider); } // go the mef route else { var sp = await GetServiceAsync(typeof(IUIProvider)) as IUIProvider; return sp.TryGetService(serviceType); } }