public void TestPreExecutionChecker_TablesDontExist() { var tbl = DiscoveredDatabaseICanCreateRandomTablesIn.ExpectTable("Imaginary"); Assert.IsFalse(tbl.Exists()); var lmd = RdmpMockFactory.Mock_LoadMetadataLoadingTable(tbl); var checker = new PreExecutionChecker(lmd, new HICDatabaseConfiguration(DiscoveredDatabaseICanCreateRandomTablesIn.Server)); var ex = Assert.Throws <Exception>(() => checker.Check(new ThrowImmediatelyCheckNotifier())); StringAssert.IsMatch("Table '.*Imaginary.*' does not exist", ex.Message); }
public void TestPreExecutionChecker_TablesDontExist() { var db = GetCleanedServer(FAnsi.DatabaseType.MicrosoftSQLServer); var tbl = db.ExpectTable("Imaginary"); Assert.IsFalse(tbl.Exists()); var lmd = RdmpMockFactory.Mock_LoadMetadataLoadingTable(tbl); var checker = new PreExecutionChecker(lmd, new HICDatabaseConfiguration(db.Server)); var ex = Assert.Throws <Exception>(() => checker.Check(new ThrowImmediatelyCheckNotifier())); StringAssert.IsMatch("Table '.*Imaginary.*' does not exist", ex.Message); }
public void Check(ICheckNotifier notifier) { var catalogueLoadChecks = new CatalogueLoadChecks(LoadMetadata, _loadConfigurationFlags, _databaseConfiguration); var metadataLoggingConfigurationChecks = new MetadataLoggingConfigurationChecks(LoadMetadata); var processTaskChecks = new ProcessTaskChecks(LoadMetadata); var preExecutionChecks = new PreExecutionChecker(LoadMetadata, _databaseConfiguration); _mef.CheckForVersionMismatches(notifier); //If the load is a progressable (loaded over time) then make sure any associated caches are compatible with the load ProcessTasks foreach (ILoadProgress loadProgress in LoadMetadata.LoadProgresses) { loadProgress.Check(notifier); var cp = loadProgress.CacheProgress; if (cp != null) { try { var f = new CacheLayoutFactory(); f.CreateCacheLayout(loadProgress, LoadMetadata); } catch (Exception e) { notifier.OnCheckPerformed(new CheckEventArgs("Load contains a CacheProgress '" + cp + "' but we were unable to generate an ICacheLayout, see Inner Exception for details", CheckResult.Fail, e)); } } } //Make sure there are some load tasks and they are valid processTaskChecks.Check(notifier); try { metadataLoggingConfigurationChecks.Check(notifier); preExecutionChecks.Check(notifier); if (!preExecutionChecks.HardFail) { catalogueLoadChecks.Check(notifier); } } catch (Exception e) { notifier.OnCheckPerformed(new CheckEventArgs("Entire check process crashed in an unexpected way", CheckResult.Fail, e)); } }
public void TestPreExecutionChecker_TableIsTableValuedFunction() { TestableTableValuedFunction f = new TestableTableValuedFunction(); f.Create(DiscoveredDatabaseICanCreateRandomTablesIn, CatalogueRepository); var tbl = f.TableInfoCreated.Discover(DataAccessContext.DataLoad); Assert.IsTrue(tbl.Exists()); var lmd = RdmpMockFactory.Mock_LoadMetadataLoadingTable(f.TableInfoCreated); var checker = new PreExecutionChecker(lmd, new HICDatabaseConfiguration(DiscoveredDatabaseICanCreateRandomTablesIn.Server)); var ex = Assert.Throws <Exception>(() => checker.Check(new ThrowImmediatelyCheckNotifier())); StringAssert.IsMatch("Table '.*MyAwesomeFunction.*' is a TableValuedFunction", ex.Message); }
private void RunDleChecks() { var preChecker = new PreExecutionChecker(_lmd, new HICDatabaseConfiguration(_lmd, DatabaseNamer)); preChecker.Check(new AcceptAllCheckNotifier()); }