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); }
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); }
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; } }
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); }
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); }
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); }
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); }
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"); }
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); }
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"); }