Exemple #1
0
        public void TestCSDLDisplayFolders()
        {
            MetaDataVisitorCSDL v  = new MetaDataVisitorCSDL(connection);
            ADOTabularDatabase  db = new ADOTabularDatabase(connection, "Test", "Test", DateTime.Parse("2019-09-01 09:00:00"), "1200", "*");
            ADOTabularModel     m  = new ADOTabularModel(connection, db, "Test", "Test", "Test Description", "");

            System.Xml.XmlReader xr = new System.Xml.XmlTextReader(@"..\..\data\AdvWrksFoldersCsdl.xml");
            var tabs = new ADOTabularTableCollection(connection, m);

            v.GenerateTablesFromXmlReader(tabs, xr);
            var cmpyTab = tabs["Internet Sales"];
            var cmpyCol = cmpyTab.Columns["Internet Current Quarter Sales"];

            var cmpyCol2 = cmpyTab.Columns["Internet Current Quarter Margin"];

            Assert.AreEqual("Internet Sales", cmpyTab.Caption, "Table Name is correct");
            Assert.AreEqual("QTD Folder", cmpyTab.FolderItems[0].Name);
            Assert.AreEqual(8, ((IADOTabularFolderReference)cmpyTab.FolderItems[0]).FolderItems.Count);
        }
Exemple #2
0
        public void TestPowerBIVariationsVisitor()
        {
            //ADOTabularConnection c = new ADOTabularConnection(ConnectionString, AdomdType.AnalysisServices);

            //IADOTabularConnection c = new Mock<IADOTabularConnection>().Object;
            MetaDataVisitorCSDL v  = new MetaDataVisitorCSDL(connection);
            ADOTabularDatabase  db = new ADOTabularDatabase(connection, "Test", "Test", DateTime.Parse("2019-09-01 09:00:00"), "1200", "*");
            ADOTabularModel     m  = new ADOTabularModel(connection, db, "Test", "Test", "Test Description", "");

            System.Xml.XmlReader xr = new System.Xml.XmlTextReader(@"..\..\data\powerbi-csdl.xml");
            var tabs = new ADOTabularTableCollection(connection, m);

            v.GenerateTablesFromXmlReader(tabs, xr);
            var promoTable = tabs["Promotion"];

            Assert.IsNotNull(promoTable);
            Assert.AreEqual(0, promoTable.Columns["PromotionName"].Variations.Count);
            Assert.AreEqual(1, promoTable.Columns["StartDate"].Variations.Count);
        }
Exemple #3
0
        public void TestADOTabularCSDLVisitorMeasures()
        {
            //var c = new ADOTabularConnection(ConnectionString, AdomdType.AnalysisServices);

            var v    = new MetaDataVisitorCSDL(connection);
            var m    = new ADOTabularModel(connection, "AdventureWorks", "AdventureWorks", "Test AdventureWorks", "");
            var tabs = new ADOTabularTableCollection(connection, m);

            System.Xml.XmlReader xr = new System.Xml.XmlTextReader(@"..\..\data\AdvWrks.xml");
            //ADOTabularModel m = new ADOTabularModel(connection, "Test", "Test Caption", "Test Description", "");
            //var tabs = new ADOTabularTableCollection(connection, m);
            v.GenerateTablesFromXmlReader(tabs, xr);


            foreach (var table in tabs)
            {
                var measures = table.Measures;
            }
        }
Exemple #4
0
        public void TestCSDLDisplayFolders()
        {
            ADOTabularConnection c = new ADOTabularConnection(ConnectionString, AdomdType.AnalysisServices);
            MetaDataVisitorCSDL  v = new MetaDataVisitorCSDL(c);
            ADOTabularModel      m = new ADOTabularModel(c, "Test", "Test", "Test Description", "");

            System.Xml.XmlReader xr = new System.Xml.XmlTextReader(@"..\..\data\AdvWrksFoldersCsdl.xml");
            var tabs = new ADOTabularTableCollection(c, m);

            v.GenerateTablesFromXmlReader(tabs, xr);
            var cmpyTab = tabs["Internet Sales"];
            var cmpyCol = cmpyTab.Columns["Internet Current Quarter Sales"];

            var cmpyCol2 = cmpyTab.Columns["Internet Current Quarter Margin"];

            Assert.AreEqual("Internet Sales", cmpyTab.Caption, "Table Name is correct");
            Assert.AreEqual("QTD Folder", cmpyCol2.DisplayFolder, "Column has display folder");
            Assert.AreEqual("QTD Folder", cmpyCol.DisplayFolder, "Column has display folder");
        }
        public void TestADOTabularCSDLVisitorKPI()
        {
            ADOTabularConnection c = new ADOTabularConnection(ConnectionString, AdomdType.AnalysisServices);
            MetaDataVisitorCSDL  v = new MetaDataVisitorCSDL(c);

            System.Xml.XmlReader xr = new System.Xml.XmlTextReader(@"..\..\data\AdvWrks.xml");
            ADOTabularModel      m  = new ADOTabularModel(c, "Test", "Test Caption", "Test Description", "");
            var tabs = new ADOTabularTableCollection(c, m);

            v.GenerateTablesFromXmlReader(tabs, xr);

            Assert.AreEqual(15, tabs.Count);
            Assert.AreEqual(24, tabs["Sales Territory"].Columns.Count());
            Assert.AreEqual(1, tabs["Sales Territory"].Columns.Where((t) => t.ColumnType == ADOTabularColumnType.Hierarchy).Count());
            var k = tabs["Sales Territory"].Columns["Total Current Quarter Sales Performance"] as ADOTabularKpi;

            Assert.AreEqual("Total Current Quarter Sales Performance", k.Caption);
            Assert.AreEqual("_Total Current Quarter Sales Performance Goal", k.Goal.Caption);
            Assert.AreEqual("_Total Current Quarter Sales Performance Status", k.Status.Caption);
        }
Exemple #6
0
        public void TestPowerBIModelCapabilities()
        {
            //ADOTabularConnection c = new ADOTabularConnection(ConnectionString, AdomdType.AnalysisServices);

            //IADOTabularConnection c = new Mock<IADOTabularConnection>().Object;
            MetaDataVisitorCSDL v  = new MetaDataVisitorCSDL(connection);
            ADOTabularDatabase  db = new ADOTabularDatabase(connection, "Test", "Test", DateTime.Parse("2019-09-01 09:00:00"), "1200", "*");
            ADOTabularModel     m  = new ADOTabularModel(connection, db, "Test", "Test", "Test Description", "");

            System.Xml.XmlReader xr = new System.Xml.XmlTextReader(@"..\..\data\powerbi-csdl.xml");
            var tabs = new ADOTabularTableCollection(connection, m);

            v.GenerateTablesFromXmlReader(tabs, xr);

            Assert.AreEqual(true, m.Capabilities.DAXFunctions.SubstituteWithIndex);
            Assert.AreEqual(true, m.Capabilities.DAXFunctions.SummarizeColumns);
            Assert.AreEqual(true, m.Capabilities.DAXFunctions.TreatAs);
            Assert.AreEqual(true, m.Capabilities.Variables);
            Assert.AreEqual(true, m.Capabilities.TableConstructor);
        }
Exemple #7
0
        public void TestPowerBIOrderByVisitor()
        {
            //ADOTabularConnection c = new ADOTabularConnection(ConnectionString, AdomdType.AnalysisServices);

            //IADOTabularConnection c = new Mock<IADOTabularConnection>().Object;
            MetaDataVisitorCSDL v  = new MetaDataVisitorCSDL(connection);
            ADOTabularDatabase  db = new ADOTabularDatabase(connection, "Test", "Test", DateTime.Parse("2019-09-01 09:00:00"), "1200", "*");
            ADOTabularModel     m  = new ADOTabularModel(connection, db, "Test", "Test", "Test Description", "");

            System.Xml.XmlReader xr = new System.Xml.XmlTextReader(@"..\..\data\powerbi-csdl.xml");
            var tabs = new ADOTabularTableCollection(connection, m);

            v.GenerateTablesFromXmlReader(tabs, xr);
            var localDateTable = tabs["LocalDateTable_697ceb23-7c16-46b1-a1ed-0100727de4c7"];

            Assert.IsNotNull(localDateTable);
            Assert.AreEqual(localDateTable.Columns["MonthNo"], localDateTable.Columns["Month"].OrderBy);
            Assert.AreEqual(localDateTable.Columns["QuarterNo"], localDateTable.Columns["Quarter"].OrderBy);
            Assert.IsNull(localDateTable.Columns["Year"].OrderBy);
        }
Exemple #8
0
        public void TestPowerBITomModel_CSDL_2_0()
        {
            //ADOTabularConnection c = new ADOTabularConnection(ConnectionString, AdomdType.AnalysisServices);

            //IADOTabularConnection c = new Mock<IADOTabularConnection>().Object;
            MetaDataVisitorCSDL v  = new MetaDataVisitorCSDL(connection);
            ADOTabularDatabase  db = new ADOTabularDatabase(connection, "Test", "Test", DateTime.Parse("2019-09-01 09:00:00"), "1200", "*");
            ADOTabularModel     m  = new ADOTabularModel(connection, db, "Test", "Test", "Test Description", "");

            System.Xml.XmlReader xr = new System.Xml.XmlTextReader(@"..\..\data\powerbi-csdl.xml");
            var tabs = new ADOTabularTableCollection(connection, m);

            v.GenerateTablesFromXmlReader(tabs, xr);

            Assert.IsNotNull(m.TOMModel);
            Assert.AreEqual(13, m.TOMModel.Tables.Count, "Table Counts are equal");
            Assert.AreEqual(tabs["ProductCategory"].Columns.Count, m.TOMModel.Tables["ProductCategory"].Columns.Count, "ProductCategory column counts are equal");
            Assert.AreEqual(tabs["Sales"].Relationships.Count, m.TOMModel.Relationships.Count(r => r.FromTable.Name == "Sales"), "Sales table relationships are equal");
            Assert.AreEqual(2, m.TOMModel.Tables["Sales"].Measures.Count, "Sales table measure counts are equal");
        }
        public void TestCSDLNestedMultipleDisplayFolders()
        {
            MetaDataVisitorCSDL v  = new MetaDataVisitorCSDL(connection);
            ADOTabularDatabase  db = new ADOTabularDatabase(connection, "Test", "Test", DateTime.Parse("2019-09-01 09:00:00"), "1200", "*");
            ADOTabularModel     m  = new ADOTabularModel(connection, db, "Test", "Test", "Test Description", "");

            System.Xml.XmlReader xr = new System.Xml.XmlTextReader(@"..\..\data\NestedMultipleFoldersCsdl.xml");
            var tabs = new ADOTabularTableCollection(connection, m);

            v.GenerateTablesFromXmlReader(tabs, xr);
            var cmpyTab = tabs["Table1"];


            /* test folder structure should be:
             *
             * Folder 1
             |- Measure
             * Folder 2
             +- Folder 3
             +- Measure
             *
             */

            Assert.AreEqual("Table1", cmpyTab.Caption, "Table Name is correct");
            Assert.AreEqual(2, cmpyTab.FolderItems.Count);

            var folder1 = ((IADOTabularFolderReference)cmpyTab.FolderItems[0]);

            Assert.AreEqual("Folder 1", folder1.Name);

            Assert.AreEqual(1, folder1.FolderItems.Count);
            Assert.AreEqual("Measure", folder1.FolderItems[0].InternalReference);
            var folder2 = ((IADOTabularFolderReference)cmpyTab.FolderItems[1]);

            Assert.AreEqual("Folder 2", folder2.Name);

            var folder3 = ((IADOTabularFolderReference)folder2.FolderItems[0]);

            Assert.AreEqual("Folder 3", folder3.Name);
            Assert.AreEqual("Measure", folder3.FolderItems[0].InternalReference);
        }
        public void TestADOTabularCSDLVisitorHierarchies()
        {
            ADOTabularConnection c = new ADOTabularConnection(ConnectionString, AdomdType.AnalysisServices);
            MetaDataVisitorCSDL  v = new MetaDataVisitorCSDL(c);

            System.Xml.XmlReader xr = new System.Xml.XmlTextReader(@"..\..\data\AdvWrks.xml");
            ADOTabularModel      m  = new ADOTabularModel(c, "Test", "Test", "Test Description", "");
            var tabs = new ADOTabularTableCollection(c, m);

            v.GenerateTablesFromXmlReader(tabs, xr);

            Assert.AreEqual(15, tabs.Count);
            Assert.AreEqual(24, tabs["Sales Territory"].Columns.Count());
            Assert.AreEqual(1, tabs["Sales Territory"].Columns.Where((t) => t.ColumnType == ADOTabularColumnType.Hierarchy).Count());
            var h = (ADOTabularHierarchy)(tabs["Sales Territory"].Columns.Where((t) => t.ColumnType == ADOTabularColumnType.Hierarchy).First());

            Assert.AreEqual(3, h.Levels.Count);
            Assert.AreEqual("Group", h.Levels[0].LevelName);
            Assert.AreEqual("Country", h.Levels[1].LevelName);
            Assert.AreEqual("Region", h.Levels[2].LevelName);
        }
Exemple #11
0
        public void TestADOTabularCSDLVisitorMeasures()
        {
            //var c = new ADOTabularConnection(ConnectionString, AdomdType.AnalysisServices);

            var v = new MetaDataVisitorCSDL(connection);
            ADOTabularDatabase db = GetTestDB();
            var m    = new ADOTabularModel(connection, db, "AdventureWorks", "AdventureWorks", "Test AdventureWorks", "");
            var tabs = new ADOTabularTableCollection(connection, m);

            System.Xml.XmlReader xr = new System.Xml.XmlTextReader(@"..\..\data\AdvWrks.xml");
            //ADOTabularModel m = new ADOTabularModel(connection, "Test", "Test Caption", "Test Description", "");
            //var tabs = new ADOTabularTableCollection(connection, m);
            v.GenerateTablesFromXmlReader(tabs, xr);


            //foreach (var table in tabs)
            //{
            //    var measures = table.Measures;
            //}

            Assert.AreEqual(1, tabs["Reseller Sales"].Measures.Count, "There should be 1 measure populated by the mocks");
        }
Exemple #12
0
        public void TestCSDLHierarchInDisplayFolders()
        {
            MetaDataVisitorCSDL v  = new MetaDataVisitorCSDL(connection);
            ADOTabularDatabase  db = new ADOTabularDatabase(connection, "Test", "Test", DateTime.Parse("2019-09-01 09:00:00"), "1200", "*");
            ADOTabularModel     m  = new ADOTabularModel(connection, db, "Test", "Test", "Test Description", "");

            System.Xml.XmlReader xr = new System.Xml.XmlTextReader(@"..\..\data\HierInFolder.csdl");
            var tabs = new ADOTabularTableCollection(connection, m);

            v.GenerateTablesFromXmlReader(tabs, xr);
            var tabDate = tabs["Date"];

            //var cmpyCol = tabDate.FolderItems.Columns["Internet Current Quarter Sales"];

            //var cmpyCol2 = cmpyTab.Columns["Internet Current Quarter Margin"];

            Assert.AreEqual(1, tabDate.FolderItems.Count, "Table Name is correct");
            Assert.AreEqual("Calendar Folder", tabDate.FolderItems[0].Name);
            Assert.IsInstanceOfType(tabDate.Columns["Calendar"], typeof(ADOTabularHierarchy));
            Assert.AreEqual(true, tabDate.Columns["Calendar"].IsInDisplayFolder);
            //Assert.AreEqual(8, ((IADOTabularFolderReference)cmpyTab.FolderItems[0]).FolderItems.Count);
        }
Exemple #13
0
        public void TestADOTabularCSDLVisitor()
        {
            //ADOTabularConnection c = new ADOTabularConnection(ConnectionString, AdomdType.AnalysisServices);

            MetaDataVisitorCSDL v  = new MetaDataVisitorCSDL(connection);
            ADOTabularDatabase  db = new ADOTabularDatabase(connection, "Test", "Test", DateTime.Parse("2019-09-01 09:00:00"), "1200", "*");
            ADOTabularModel     m  = new ADOTabularModel(connection, db, "Test", "Test", "Test Description", "");

            System.Xml.XmlReader xr = new System.Xml.XmlTextReader(@"..\..\data\csdl.xml");
            var tabs = new ADOTabularTableCollection(connection, m);

            v.GenerateTablesFromXmlReader(tabs, xr);

            Assert.AreEqual(4, tabs.Count);
            Assert.AreEqual(8, tabs["Sales"].Columns.Count()); // excludes internal rowcount column
            Assert.AreEqual(0, tabs["Sales"].Columns[2].DistinctValues);

            // Check TOM objects

            Assert.AreEqual(4, m.TOMModel.Tables.Count, "Count of tables in TOM Model");
            Assert.AreEqual(4, m.TOMModel.Tables["Sales"].Columns.Count, "Count of columns in TOM Model"); // includes external rowcount column
            Assert.AreEqual(5, m.TOMModel.Tables["Sales"].Measures.Count, "Count of measures in TOM Model");
        }