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 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 RunAttachStageWithNormalJob(RemoteTableAttacher attacher, DiscoveredDatabase db) { //the table to get data from attacher.RemoteTableName = "table1"; attacher.RAWTableName = "table2"; attacher.Check(new ThrowImmediatelyCheckNotifier()); attacher.Initialize(null, db); using (var dt = new DataTable()) { dt.Columns.Add("Col1"); dt.Rows.Add("fff"); var tbl1 = db.CreateTable("table1", dt); var tbl2 = db.CreateTable("table2", new [] { new DatabaseColumnRequest("Col1", new DatabaseTypeRequest(typeof(string), 5)) }); Assert.AreEqual(1, tbl1.GetRowCount()); Assert.AreEqual(0, tbl2.GetRowCount()); var logManager = new LogManager(new DiscoveredServer(UnitTestLoggingConnectionString)); var lmd = RdmpMockFactory.Mock_LoadMetadataLoadingTable(tbl2); Mock.Get(lmd).Setup(p => p.CatalogueRepository).Returns(CatalogueRepository); logManager.CreateNewLoggingTaskIfNotExists(lmd.GetDistinctLoggingTask()); var dbConfiguration = new HICDatabaseConfiguration(lmd, RdmpMockFactory.Mock_INameDatabasesAndTablesDuringLoads(db, "table2")); var job = new DataLoadJob(RepositoryLocator, "test job", logManager, lmd, new TestLoadDirectory(), new ThrowImmediatelyDataLoadEventListener(), dbConfiguration); job.StartLogging(); attacher.Attach(job, new GracefulCancellationToken()); Assert.AreEqual(1, tbl1.GetRowCount()); Assert.AreEqual(1, tbl2.GetRowCount()); } }
private void RunAttachStageWithLoadProgressJob(RemoteTableAttacher attacher, DiscoveredDatabase db, bool mismatchProgress) { var syntax = db.Server.GetQuerySyntaxHelper(); //the table to get data from attacher.RemoteSelectSQL = $"SELECT * FROM table1 WHERE {syntax.EnsureWrapped("DateCol")} >= @startDate AND {syntax.EnsureWrapped("DateCol")} <= @endDate"; attacher.RAWTableName = "table2"; attacher.Check(new ThrowImmediatelyCheckNotifier()); attacher.Initialize(null, db); using (var dt = new DataTable()) { dt.Columns.Add("Col1"); dt.Columns.Add("DateCol"); dt.Rows.Add("fff", new DateTime(2000, 1, 1)); dt.Rows.Add("fff", new DateTime(2001, 1, 1)); dt.Rows.Add("fff", new DateTime(2002, 1, 1)); var tbl1 = db.CreateTable("table1", dt); var tbl2 = db.CreateTable("table2", new [] { new DatabaseColumnRequest("Col1", new DatabaseTypeRequest(typeof(string), 5)), new DatabaseColumnRequest("DateCol", new DatabaseTypeRequest(typeof(DateTime))) }); Assert.AreEqual(3, tbl1.GetRowCount()); Assert.AreEqual(0, tbl2.GetRowCount()); var logManager = new LogManager(new DiscoveredServer(UnitTestLoggingConnectionString)); var lmd = RdmpMockFactory.Mock_LoadMetadataLoadingTable(tbl2); Mock.Get(lmd).Setup(p => p.CatalogueRepository).Returns(CatalogueRepository); logManager.CreateNewLoggingTaskIfNotExists(lmd.GetDistinctLoggingTask()); var lp = new LoadProgress(CatalogueRepository, new LoadMetadata(CatalogueRepository, "ffffff")); lp.OriginDate = new DateTime(2001, 1, 1); attacher.Progress = lp; attacher.ProgressUpdateStrategy = new DataLoadProgressUpdateInfo() { Strategy = DataLoadProgressUpdateStrategy.DoNothing }; var dbConfiguration = new HICDatabaseConfiguration(lmd, RdmpMockFactory.Mock_INameDatabasesAndTablesDuringLoads(db, "table2")); var job = new ScheduledDataLoadJob(RepositoryLocator, "test job", logManager, lmd, new TestLoadDirectory(), new ThrowImmediatelyDataLoadEventListener(), dbConfiguration); job.LoadProgress = mismatchProgress ? new LoadProgress(CatalogueRepository, new LoadMetadata(CatalogueRepository, "ffsdf")) : lp; job.DatesToRetrieve = new List <DateTime> { new DateTime(2001, 01, 01) }; job.StartLogging(); attacher.Attach(job, new GracefulCancellationToken()); Assert.AreEqual(3, tbl1.GetRowCount()); Assert.AreEqual(mismatchProgress ? 0 : 1, tbl2.GetRowCount()); } }