public void HistoryWithEtlRunInfo() { var model = CreateModel(); var configuration = new DwhBuilderConfiguration() { HistoryTableNamePostfix = "Hist", }; model["secondary"]["pet"].SetEtlRunInfoDisabled(); model["dbo"]["people"].SetHasHistoryTable(); RelationalModelExtender.Extend(model, configuration); Assert.AreEqual(3 + 4 + 1, model["dbo"]["people"].Columns.Count); Assert.IsNotNull(model["dbo"]["people"][configuration.EtlRunInsertColumnName]); Assert.IsNotNull(model["dbo"]["people"][configuration.EtlRunUpdateColumnName]); Assert.IsNotNull(model["dbo"]["people"][configuration.EtlRunFromColumnName]); Assert.IsNotNull(model["dbo"]["people"][configuration.EtlRunToColumnName]); Assert.IsNotNull(model["dbo"]["people"][configuration.ValidFromColumnName]); Assert.AreEqual(1 + 3 + 4 + 2, model["dbo"]["peopleHist"].Columns.Count); Assert.AreEqual("peopleHistID", model["dbo"]["peopleHist"].Columns[0].Name); Assert.IsNotNull(model["dbo"]["peopleHist"][configuration.EtlRunInsertColumnName]); Assert.IsNotNull(model["dbo"]["peopleHist"][configuration.EtlRunUpdateColumnName]); Assert.IsNotNull(model["dbo"]["peopleHist"][configuration.EtlRunFromColumnName]); Assert.IsNotNull(model["dbo"]["peopleHist"][configuration.EtlRunToColumnName]); Assert.IsNotNull(model["dbo"]["peopleHist"][configuration.ValidFromColumnName]); Assert.IsNotNull(model["dbo"]["peopleHist"][configuration.ValidToColumnName]); Assert.AreEqual(3, model["secondary"]["pet"].Columns.Count); }
public override void Execute() { DatabaseDeclaration.GetTable("dbo", "Company").HasHistoryTable(); var configuration = new DwhBuilderConfiguration(); var model = DwhDataDefinitionToRelationalModelConverter.Convert(DatabaseDeclaration, "dbo"); DataDefinitionExtenderMsSql2016.Extend(DatabaseDeclaration, configuration); RelationalModelExtender.Extend(model, configuration); CreateDatabase(DatabaseDeclaration); Init(configuration, model); Update(configuration, model); }
public void EtlRunInfo() { var model = CreateModel(); var configuration = new DwhBuilderConfiguration(); model["secondary"]["pet"].SetEtlRunInfoDisabled(); RelationalModelExtender.Extend(model, configuration); var etlRunTable = model["dbo"]["_EtlRun"]; Assert.IsNotNull(etlRunTable); Assert.AreEqual(6, etlRunTable.Columns.Count); Assert.AreEqual(3 + 4, model["dbo"]["people"].Columns.Count); Assert.AreEqual(3, model["secondary"]["pet"].Columns.Count); }
public void HistoryWithoutEtlRunInfo() { var model = CreateModel(); var configuration = new DwhBuilderConfiguration() { UseEtlRunInfo = false, HistoryTableNamePostfix = "Hist", }; model["dbo"]["people"].SetHasHistoryTable(); RelationalModelExtender.Extend(model, configuration); Assert.AreEqual(3 + 1, model["dbo"]["people"].Columns.Count); Assert.AreEqual(configuration.ValidFromColumnName, model["dbo"]["people"].Columns[3].Name); Assert.AreEqual(1 + 3 + 2, model["dbo"]["peopleHist"].Columns.Count); Assert.AreEqual("peopleHistID", model["dbo"]["peopleHist"].Columns[0].Name); Assert.AreEqual(configuration.ValidFromColumnName, model["dbo"]["peopleHist"].Columns[4].Name); Assert.AreEqual(configuration.ValidToColumnName, model["dbo"]["peopleHist"].Columns[5].Name); Assert.AreEqual(3, model["secondary"]["pet"].Columns.Count); Assert.IsTrue(model["dbo"]["peopleHist"].AnyPrimaryKeyColumnIsIdentity); Assert.AreEqual(1, model["dbo"]["peopleHist"].PrimaryKeyColumns.Count); Assert.AreEqual("peopleHistID", model["dbo"]["peopleHist"].PrimaryKeyColumns[0].Name); Assert.AreEqual(1 + 3 + 2, model["dbo"]["peopleHist"].Columns.Count); Assert.IsTrue(model["dbo"]["peopleHist"]["PeopleHistID"] != null); Assert.IsTrue(model["dbo"]["peopleHist"][configuration.ValidFromColumnName] != null); Assert.IsTrue(model["dbo"]["peopleHist"][configuration.ValidToColumnName] != null); Assert.AreEqual(model["dbo"]["people"], model["dbo"]["peopleHist"].ForeignKeys[0].TargetTable); Assert.AreEqual(model["dbo"]["peopleHist"]["id"], model["dbo"]["peopleHist"].ForeignKeys[0].ColumnPairs[0].SourceColumn); Assert.AreEqual(model["dbo"]["people"]["id"], model["dbo"]["peopleHist"].ForeignKeys[0].ColumnPairs[0].TargetColumn); Assert.AreEqual(model["secondary"]["PET"], model["dbo"]["peopleHist"].ForeignKeys[1].TargetTable); Assert.AreEqual(model["dbo"]["peopleHist"]["favoritepetid"], model["dbo"]["peopleHist"].ForeignKeys[1].ColumnPairs[0].SourceColumn); Assert.AreEqual(model["secondary"]["PET"]["id"], model["dbo"]["peopleHist"].ForeignKeys[1].ColumnPairs[0].TargetColumn); }