public void TestGetAllForMinimumRequirementSelectsTheLatestIfNotReachable() { var locator = new ProviderLocator(new ProviderRegistry()); string[] providerTypeNames = locator.GetAllForMinimumRequirement(DbPlatform.SqlServer2014).Select(i => i.Provider).Select(p => p.GetType().Name).ToArray(); CollectionAssert.AreEquivalent(new[] { "SqlServer2012Provider" }, providerTypeNames); }
public void TestGetExactly() { var locator = new ProviderLocator(new ProviderRegistry()); ProviderInfo info = locator.GetExactly(DbPlatform.SqlServer2012); Assert.AreEqual("SqlServer2012Provider", info.Provider.GetType().Name); }
public void TestGetLatestWhenThereIsOnlyOlderProviders() { var locator = new ProviderLocator(new ProviderRegistry()); ProviderInfo info = locator.GetLatest(DbPlatform.SqlServer2014); Assert.AreEqual("SqlServer2012Provider", info.Provider.GetType().Name); }
public void TestGetExactlyThrowsIfNoMatchingProviderIsFound() { var locator = new ProviderLocator(new ProviderFactory()); ProviderInfo info = locator.GetExactly(DbPlatform.SqlServer2014); Assert.AreEqual("SqlServer2014Provider", info.Provider.GetType().FullName); }
public void TestGetLatestWhenThereIsNoMatchingProviders() { var locator = new ProviderLocator(new ProviderFactory()); ProviderInfo info = locator.GetLatest(new DbPlatform(Platform.SqlServer, 8)); Assert.AreEqual("SqlServer2000Provider", info.Provider.GetType().FullName); }
public void TestGetLatestWhenThereIsMatchingProvider() { var locator = new ProviderLocator(new ProviderFactory()); ProviderInfo info = locator.GetLatest(DbPlatform.SqlServer2008); Assert.AreEqual("SqlServer2008Provider", info.Provider.GetType().Name); }
public void TestGetAllForMinimumRequirement() { var locator = new ProviderLocator(new ProviderFactory()); string[] providerTypeNames = locator.GetAllForMinimumRequirement(DbPlatform.SqlServer2008).Select(i => i.Provider).Select(p => p.GetType().Name).ToArray(); CollectionAssert.AreEquivalent(new[] { "SqlServer2008Provider", "SqlServer2012Provider" }, providerTypeNames); }
public virtual void Setup() { _options = new MigrationOptions(); _options.SupportedPlatforms.Set(new[] { DbPlatform }); // avoid validation errors/warnings from other providers // initialize IntegrationTestContext IProviderFactory providerFactory = new ProviderFactory(); var providerLocator = new ProviderLocator(providerFactory); ProviderInfo providerInfo = providerLocator.GetExactly(DbPlatform); IntegrationTestContext.Initialize(_options, providerInfo); }
private RuntimeConfiguration CreateRuntimeConfiguration(string connectionString, DbPlatform dbPlatform, DbAltererOptions options) { var providerLocator = new ProviderLocator(new ProviderFactory()); // CLEAN: use DI container var providerInfo = providerLocator.GetLatest(dbPlatform); var validatorFactory = new ValidatorFactory(providerInfo, options, providerLocator); var validator = validatorFactory.Create(); var connectionInfo = new ConnectionInfo(connectionString, providerInfo.Metadata.InvariantName, providerInfo.Metadata.SupportsTransactions, providerInfo.Metadata.EnableAnsiQuotesCommand); var sqlDispatcher = new SqlDispatcher(options.GetScriptingOptions(), providerInfo.Provider, providerInfo.Metadata); return(new RuntimeConfiguration(providerInfo, connectionInfo, validator, sqlDispatcher)); }
public void CheckProviderValidation(DbPlatform platformUnderExecution, DbAltererOptions options, int expectedTotalNumberOfSupportedProviders, int expectedValidationRuns) { // arrange var providerLocator = new ProviderLocator(new ProviderFactory()); int totalNumberOfSupportedProviders = options.SupportedPlatforms.Sum(n => providerLocator.GetAllForMinimumRequirement(n).Count()); var validatorFactory = new ValidatorFactory(providerLocator.GetExactly(platformUnderExecution), options, providerLocator); Validator validator = validatorFactory.Create(); var reporter = A.Fake<IMigrationReporter>(); string errors; string warnings; // act validator.Validate(new[] { reporter }, out errors, out warnings); // assert Assert.AreEqual(expectedTotalNumberOfSupportedProviders, totalNumberOfSupportedProviders, "Wrong total number of providers."); A.CallTo(() => reporter.Report(A<IMigrationContext>._)).MustHaveHappened(Repeated.Exactly.Times(expectedValidationRuns)); }
public SqlAggregateMigrationGenerator(Server server, Database database, GeneratorOptions options) : base(server, database, options) { var providerLocator = new ProviderLocator(new ProviderFactory()); // CLEAN: use DI container ProviderInfo provider = providerLocator.GetExactly(DbPlatform.SqlServer2008); var versioningTableName = new TableName(options.VersioningTableName, options.VersioningTableSchema); _history = new History(versioningTableName, provider.Metadata); IDbConnection connection = server.ConnectionContext.SqlConnectionObject; connection.Open(); connection.ChangeDatabase(Database.Name); // ATTENTION: possibly has side-effects try { _history.Load(connection, null); } finally { connection.Close(); } }
/// <summary> /// Recupera a origemd de ados /// </summary> /// <param name="queryInfo"></param> /// <returns></returns> private IQueryDataSource GetDataSource(QueryInfo queryInfo) { var providerName = ProviderLocator.GetProviderName(queryInfo); IQueryDataSource dataSource = null; lock (_objLock) if (_queryDataSources.TryGetValue(providerName, out dataSource)) { return(dataSource); } dataSource = _serviceLocator.GetInstance <IQueryDataSource>(string.Format("{0}QueryDataSource", providerName)); if (dataSource == null) { throw new Exception(ResourceMessageFormatter.Create(() => Properties.Resources.DataSourceUndefined).Format()); } lock (_objLock) { if (!_queryDataSources.ContainsKey(providerName)) { _queryDataSources.Add(providerName, dataSource); } } return(dataSource); }
public ValidatorFactory(ProviderInfo providerInfo, DbAltererOptions options, ProviderLocator providerLocator) { _providerInfo = providerInfo; _options = options; _providerLocator = providerLocator; }
public void TestGetExactlyThrowsIfNoMatchingProviderIsFound() { var locator = new ProviderLocator(new ProviderRegistry()); Assert.That(() => locator.GetExactly(DbPlatform.SqlServer2014), Throws.Exception); }
public void TestGetLatestWhenThereIsNoMatchingProviders() { var locator = new ProviderLocator(new ProviderRegistry()); Assert.That(() => locator.GetLatest(new DbPlatform(Platform.SqlServer, 8)), Throws.Exception); }