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);
    }
示例#2
0
        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);
    }