public FormatterUnitTestsBase() { HostMock = new Mock <IProtocolEndpoint>(); WorkspaceServiceMock = new Mock <WorkspaceService <SqlToolsSettings> >(); LanguageServiceMock = new Mock <LanguageService>(); ServiceProvider = ExtensionServiceProvider.CreateDefaultServiceProvider(); ServiceProvider.RegisterSingleService(WorkspaceServiceMock.Object); ServiceProvider.RegisterSingleService(LanguageServiceMock.Object); HostLoader.InitializeHostedServices(ServiceProvider, HostMock.Object); FormatterService = ServiceProvider.GetService <TSqlFormatterService>(); }
private static void InitializeRequestHandlersAndServices(ServiceHost serviceHost, SqlToolsContext sqlToolsContext) { // Load extension provider, which currently finds all exports in current DLL. Can be changed to find based // on directory or assembly list quite easily in the future ExtensionServiceProvider serviceProvider = ExtensionServiceProvider.CreateDefaultServiceProvider(); serviceProvider.RegisterSingleService(sqlToolsContext); serviceProvider.RegisterSingleService(serviceHost); // Initialize and register singleton services so they're accessible for any MEF service. In the future, these // could be updated to be IComposableServices, which would avoid the requirement to define a singleton instance // and instead have MEF handle discovery & loading WorkspaceService <SqlToolsSettings> .Instance.InitializeService(serviceHost); serviceProvider.RegisterSingleService(WorkspaceService <SqlToolsSettings> .Instance); LanguageService.Instance.InitializeService(serviceHost, sqlToolsContext); serviceProvider.RegisterSingleService(LanguageService.Instance); ConnectionService.Instance.InitializeService(serviceHost); serviceProvider.RegisterSingleService(ConnectionService.Instance); CredentialService.Instance.InitializeService(serviceHost); serviceProvider.RegisterSingleService(CredentialService.Instance); QueryExecutionService.Instance.InitializeService(serviceHost); serviceProvider.RegisterSingleService(QueryExecutionService.Instance); EditDataService.Instance.InitializeService(serviceHost); serviceProvider.RegisterSingleService(EditDataService.Instance); MetadataService.Instance.InitializeService(serviceHost); serviceProvider.RegisterSingleService(MetadataService.Instance); ScriptingService.Instance.InitializeService(serviceHost); serviceProvider.RegisterSingleService(ScriptingService.Instance); AdminService.Instance.InitializeService(serviceHost); serviceProvider.RegisterSingleService(AdminService.Instance); DisasterRecoveryService.Instance.InitializeService(serviceHost); serviceProvider.RegisterSingleService(DisasterRecoveryService.Instance); FileBrowserService.Instance.InitializeService(serviceHost); serviceProvider.RegisterSingleService(FileBrowserService.Instance); ProfilerService.Instance.InitializeService(serviceHost); serviceProvider.RegisterSingleService(ProfilerService.Instance); InitializeHostedServices(serviceProvider, serviceHost); serviceHost.ServiceProvider = serviceProvider; serviceHost.InitializeRequestHandlers(); }
public void CreateDefaultServiceProviderShouldFindTypesInAllKnownAssemblies() { // Given a default ExtensionServiceProvider // Then we should not find exports from a test assembly ExtensionServiceProvider serviceProvider = ExtensionServiceProvider.CreateDefaultServiceProvider(); Assert.Empty(serviceProvider.GetServices <MyExportType>()); // But should find exports that are defined in the main assembly Assert.NotEmpty(serviceProvider.GetServices <ASTNodeFormatterFactory>()); }
public void ShouldFindDatabaseQuerierFromRealPath() { // Given the extension type loader is set to find SmoCollectionQuerier objects IMultiServiceProvider serviceProvider = ExtensionServiceProvider.CreateDefaultServiceProvider(); // When I request a database compatible querier SmoQuerier querier = serviceProvider.GetService <SmoQuerier>(q => q.SupportedObjectTypes.Contains(typeof(Database))); // Then I expect to get back the SqlDatabaseQuerier Assert.NotNull(querier); Assert.Equal(typeof(SqlDatabaseQuerier), querier.GetType()); // And I expect the service provider to have been set by the extension code Assert.NotNull(querier.ServiceProvider); }
private SmoQuerier GetSmoQuerier(Type querierType) { // Given the extension type loader is set to find SmoCollectionQuerier objects IMultiServiceProvider serviceProvider = ExtensionServiceProvider.CreateDefaultServiceProvider(); // When I request a compatible querier SmoQuerier querier = serviceProvider.GetService <SmoQuerier>(q => q.SupportedObjectTypes.Contains(querierType)); // Then I expect to get back the Querier Assert.NotNull(querier); // And I expect the service provider to have been set by the extension code Assert.NotNull(querier.ServiceProvider); return(querier); }
private static void InitializeRequestHandlersAndServices(UtilityServiceHost serviceHost, SqlToolsContext sqlToolsContext) { // Load extension provider, which currently finds all exports in current DLL. Can be changed to find based // on directory or assembly list quite easily in the future ExtensionServiceProvider serviceProvider = ExtensionServiceProvider.CreateDefaultServiceProvider(); serviceProvider.RegisterSingleService(sqlToolsContext); serviceProvider.RegisterSingleService(serviceHost); CredentialService.Instance.InitializeService(serviceHost); serviceProvider.RegisterSingleService(CredentialService.Instance); InitializeHostedServices(serviceProvider, serviceHost); serviceHost.InitializeRequestHandlers(); }
public NodeTests() { defaultServerInfo = TestObjects.GetTestServerInfo(); defaultConnectionDetails = new ConnectionDetails() { DatabaseName = "master", ServerName = "localhost", UserName = "******", Password = "******" }; defaultConnParams = new ConnectionCompleteParams() { ServerInfo = defaultServerInfo, ConnectionSummary = defaultConnectionDetails, OwnerUri = defaultOwnerUri }; // TODO can all tests use the standard service provider? ServiceProvider = ExtensionServiceProvider.CreateDefaultServiceProvider(); }