public void MinimalPerspectiveTest() { DeleteTestPerspectives(); var handler = new TabularModelHandler("localhost", "AdventureWorks"); handler.Tree = new MockTree(handler.Model); var m = handler.Model; // Perspective which includes everything except a few select items: var pnEx = "Test Perspective Exclusive"; Perspective.CreateNew(pnEx); m.Tables["Date 6"].InPerspective[pnEx] = true; m.Tables["Currency"].InPerspective[pnEx] = true; //m.Tables.InPerspective(pnEx, true); //m.Tables["Reseller Sales"].InPerspective[pnEx] = true; //m.Tables["Employee"].InPerspective[pnEx] = false; //m.Tables["Date"].Hierarchies.InPerspective(pnEx, false); //m.Tables["Internet Sales"].Measures.InPerspective(pnEx, false); //m.Tables["Product"].Columns.InPerspective(pnEx, false); //m.Tables["Reseller Sales"].Measures["Reseller Total Sales"].InPerspective[pnEx] = false; handler.SaveDB(); handler.UndoManager.Rollback(); handler.SaveDB(); // Check that perspectives were succesfully deleted: Assert.IsFalse(m.Perspectives.Contains(pnEx)); }
public Perspective AddPerspective(string name = null) { if (Handler.UsePowerBIGovernance && !PowerBI.PowerBIGovernance.AllowCreate(typeof(Perspective))) { return(null); } Handler.BeginUpdate("add perspective"); var perspective = Perspective.CreateNew(this, name); Handler.EndUpdate(); return(perspective); }
public Perspective AddPerspective(string name = null) { if (!Handler.PowerBIGovernance.AllowCreate(typeof(Perspective))) { throw new PowerBIGovernanceException("Adding perspectives to this Power BI model is not supported."); } Handler.BeginUpdate("add perspective"); var perspective = Perspective.CreateNew(this, name); Handler.EndUpdate(); return(perspective); }
public void PerspectiveTest() { DeleteTestPerspectives(); var handler = new TabularModelHandler("localhost", "AdventureWorks"); handler.Tree = new MockTree(handler.Model); var m = handler.Model; // Perspective which only includes a few select items: var pnIn = "Test Perspective Inclusive"; Perspective.CreateNew(pnIn); m.Tables["Employee"].InPerspective[pnIn] = true; m.Tables["Date"].Hierarchies.InPerspective(pnIn, true); m.Tables["Internet Sales"].Measures.InPerspective(pnIn, true); m.Tables["Product"].Columns.InPerspective(pnIn, true); m.Tables["Reseller Sales"].Measures["Reseller Total Sales"].InPerspective[pnIn] = true; // Perspective which includes everything except a few select items: var pnEx = "Test Perspective Exclusive"; Perspective.CreateNew(pnEx); m.Tables.InPerspective(pnEx, true); m.Tables["Employee"].InPerspective[pnEx] = false; m.Tables["Date"].Hierarchies.InPerspective(pnEx, false); m.Tables["Internet Sales"].Measures.InPerspective(pnEx, false); m.Tables["Product"].Columns.InPerspective(pnEx, false); m.Tables["Reseller Sales"].Measures["Reseller Total Sales"].InPerspective[pnEx] = false; handler.SaveDB(); // Check on included perspective: Assert.IsTrue(m.Tables["Employee"].GetChildren().OfType <ITabularPerspectiveObject>().All(obj => obj.InPerspective[pnIn])); Assert.IsTrue(m.Tables["Employee"].InPerspective[pnIn]); Assert.IsTrue(m.Tables["Date"].Hierarchies.All(obj => obj.InPerspective[pnIn])); Assert.IsTrue(m.Tables["Internet Sales"].Measures.All(obj => obj.InPerspective[pnIn])); Assert.IsTrue(m.Tables["Product"].Columns.All(obj => obj.InPerspective[pnIn])); Assert.IsTrue(m.Tables["Reseller Sales"].Measures["Reseller Total Sales"].InPerspective[pnIn]); Assert.AreEqual(1, m.Tables["Reseller Sales"].Measures.Count(obj => obj.InPerspective[pnIn])); Assert.IsTrue(m.Tables["Reseller Sales"].InPerspective[pnIn]); Assert.IsFalse(m.Tables["Geography"].GetChildren().OfType <ITabularPerspectiveObject>().Any(obj => obj.InPerspective[pnIn])); Assert.IsFalse(m.Tables["Geography"].InPerspective[pnIn]); Assert.IsFalse(m.Tables["Date"].Columns.Any(obj => obj.InPerspective[pnIn])); // Check on excluded perspective: Assert.IsFalse(m.Tables["Employee"].GetChildren().OfType <ITabularPerspectiveObject>().Any(obj => obj.InPerspective[pnEx])); Assert.IsFalse(m.Tables["Employee"].InPerspective[pnEx]); Assert.IsFalse(m.Tables["Date"].Hierarchies.Any(obj => obj.InPerspective[pnEx])); Assert.IsFalse(m.Tables["Internet Sales"].Measures.Any(obj => obj.InPerspective[pnEx])); Assert.IsFalse(m.Tables["Product"].Columns.Any(obj => obj.InPerspective[pnEx])); Assert.IsFalse(m.Tables["Reseller Sales"].Measures["Reseller Total Sales"].InPerspective[pnEx]); Assert.AreEqual(1, m.Tables["Reseller Sales"].Measures.Count(obj => !obj.InPerspective[pnEx])); Assert.IsTrue(m.Tables["Reseller Sales"].InPerspective[pnEx]); Assert.IsTrue(m.Tables["Geography"].GetChildren().OfType <ITabularPerspectiveObject>().All(obj => obj.InPerspective[pnEx])); Assert.IsTrue(m.Tables["Geography"].InPerspective[pnEx]); Assert.IsTrue(m.Tables["Date"].Columns.All(obj => obj.InPerspective[pnEx])); handler.UndoManager.Rollback(); handler.SaveDB(); // Check that perspectives were succesfully deleted: Assert.IsFalse(m.Perspectives.Contains(pnIn)); Assert.IsFalse(m.Perspectives.Contains(pnEx)); }