public void RMN_Model_Perspective_Load_Save_Load()
        {
            //Open the BIM file you sent in Visual Studio (the .TXT must be replaced with .BIM)
            var text = Utilities.ReadFileFromResources("RMN_Model_Perspective.bim");

            BaseTestJson(text, ignoreEmptyLines: true);

            //Get measures from BIM file
            var container = MeasuresContainer.ParseText(text);

            //Remove the "Cost Amount" measure from the DAX file
            var index = -1;
            var i     = 0;

            foreach (var measure in container.AllMeasures)
            {
                if (measure.Name.Equals("Cost Amount", StringComparison.OrdinalIgnoreCase))
                {
                    index = i;
                }
                ++i;
            }
            container.AllMeasures.RemoveAt(index);

            //Save measures to BIM file
            text = container.UpdateMeasures(text);

            //Open the BIM file
            BaseTestJson(text, ignoreEmptyLines: true);
        }
        public void WithKPI2_Json()
        {
            var text = Utilities.ReadFileFromResources("WithKPI2_JSON.bim");

            var container = MeasuresContainer.ParseText(text);
            var measure   = container.Measures[0];

            Assert.AreEqual(measure.Name, "# SKUs");

            BaseTestJson(text, ignoreEmptyLines: true);
        }
        public void KPIExample()
        {
            var text = Utilities.ReadFileFromResources("KPIExample.bim");

            BaseTestXml(text, normalize: true);

            var container = MeasuresContainer.ParseText(text);

            Assert.AreEqual(6, container.Measures.Count, "container.Measures.Count != 6");
            Assert.AreEqual(10, container.SupportingMeasures.Count, "container.SupportingMeasures.Count != 10");
            Assert.AreEqual(16, container.AllMeasures.Count, "container.AllMeasures.Count != 16");
        }
        public void M1_Json()
        {
            var text = Utilities.ReadFileFromResources("M1_JSON.bim");

            BaseTestJson(text, ignoreEmptyLines: true);

            var container = MeasuresContainer.ParseText(text);

            Assert.AreEqual(68, container.Measures.Count);
            Assert.AreEqual(0, container.SupportingMeasures.Count);
            Assert.AreEqual(68, container.AllMeasures.Count);
        }
        public void Bim1100_Json()
        {
            var text = Utilities.ReadFileFromResources("BIM1100_JSON.bim");

            BaseTestJson(text);

            var container = MeasuresContainer.ParseText(text);

            Assert.AreEqual(3, container.Measures.Count);
            Assert.AreEqual(0, container.SupportingMeasures.Count);
            Assert.AreEqual(3, container.AllMeasures.Count);
        }
        public void M1()
        {
            var text = Utilities.ReadFileFromResources("M1.bim");

            BaseTestXml(text, normalize: true);

            var container = MeasuresContainer.ParseText(text);

            Assert.AreEqual(68, container.Measures.Count);
            Assert.AreEqual(20, container.SupportingMeasures.Count);
            Assert.AreEqual(88, container.AllMeasures.Count);
        }
Пример #7
0
        public void CalcProperty_KpiFormatWithDoubleQuotes()
        {
            var text   = @"CREATE MEASURE 'Test'[Sales1] =  SUM ( Test[Value] )
CALCULATION PROPERTY CURRENCY
    KPITARGETFORMATSTRING = '""€"" #,0;#,0 -""€"";""€"" #,0'
;


";
            var parser = ParseText(text);

            //Check the correct reception of the format
            var measure  = parser.AllMeasures[0];
            var expected = @"""€"" #,0;#,0 -""€"";""€"" #,0";

            Assert.AreEqual(expected, measure.CalcProperty.KPI.TargetFormatString);

            //Check the correct saving of the format
            var container = new MeasuresContainer(parser.AllMeasures);

            Assert.AreEqual(text, container.GetDaxText());
        }
        static public string BaseTest(string text)
        {
            var container = MeasuresContainer.ParseText(text);

            Assert.IsNotNull(container, "container != null");
            Assert.IsNotNull(container.Measures, "container.Measures != null");
            Assert.IsNotNull(container.SupportingMeasures, "container.SupportingMeasures != null");
            Assert.IsNotNull(container.AllMeasures, "container.AllMeasures != null");

            var dax = container.GetDaxText();

            Assert.IsNotNull(dax, "dax != null");

            var daxContainer = MeasuresContainer.ParseDaxScript(dax);

            Assert.AreEqual(container.Measures.Count, daxContainer.Measures.Count,
                            "container.Measures.Count != daxContainer.Measures.Count");
            //Assert.AreEqual(container.SupportingMeasures.Count, daxContainer.SupportingMeasures.Count, "container.SupportingMeasures.Count != daxContainer.SupportingMeasures.Count");
            //Assert.AreEqual(container.AllMeasures.Count, daxContainer.AllMeasures.Count, "container.AllMeasures.Count != daxContainer.AllMeasures.Count");

            return(daxContainer.UpdateMeasures(text));
        }