Exemple #1
0
        void assertParseLineComment(int offset, string line)
        {
            var p = new PlanParser();
            var o = p.AsDynamic().ParseLine(offset, line, 0);

            Assert.IsNull(o);
        }
Exemple #2
0
        void assertParseLineLoop(int offset, string line, int count)
        {
            var p = new PlanParser();
            var o = new PrivateObject(p.AsDynamic().ParseLine(offset, line, 0));

            Assert.IsTrue((bool)o.GetField("IsLoop"));
            Assert.AreEqual(count, (int)o.GetField("LoopCount"));
        }
Exemple #3
0
        void assertParseLineError(int offset, string line, int shouldStart, int shouldLength)
        {
            var p = new PlanParser();
            var o = new PrivateObject(p.AsDynamic().ParseLine(offset, line, 0));

            Assert.IsTrue((bool)o.GetField("IsError"));
            Assert.AreEqual(shouldStart, (int)o.GetField("Start"));
            Assert.AreEqual(shouldLength, (int)o.GetField("Length"));
        }
Exemple #4
0
        void assertParseLineSection(int offset, string line, int shouldTargetPower, int shouldDuration, string shouldDesc)
        {
            var p = new PlanParser();

            var o = new PrivateObject(p.AsDynamic().ParseLine(offset, line, 0));

            Assert.IsFalse((bool)o.GetField("IsError"));
            Assert.AreEqual(shouldTargetPower, (int)o.GetField("TargetPower"));
            Assert.AreEqual(shouldDuration, (int)o.GetField("Duration"));
            Assert.AreEqual(shouldDesc, (string)o.GetField("Desc"));
        }
Exemple #5
0
        int parseDuration(string s)
        {
            var p = new PlanParser();
            var o = new PrivateObject(p.AsDynamic().ParseDuration(s));

            if (!((bool)o.GetField("IsError")))
            {
                return((int)o.GetField("Duration"));
            }
            return(-1);
        }
Exemple #6
0
        public void TestIndexOfNextLetter()
        {
            string s = "abc def  gh ";
            var    p = new PlanParser();

            Assert.AreEqual(0, p.AsDynamic().IndexOfNextNonWhiteSpace(s, 0));
            Assert.AreEqual(1, p.AsDynamic().IndexOfNextNonWhiteSpace(s, 1));
            Assert.AreEqual(4, p.AsDynamic().IndexOfNextNonWhiteSpace(s, 3));
            Assert.AreEqual(9, p.AsDynamic().IndexOfNextNonWhiteSpace(s, 7));
            Assert.AreEqual(12, p.AsDynamic().IndexOfNextNonWhiteSpace(s, 12));
        }
Exemple #7
0
        public void TestIndexOfNextWhiteSpace()
        {
            string s = "abc def  gh ";
            var    p = new PlanParser();

            Assert.AreEqual(3, p.AsDynamic().IndexOfNextWhiteSpace(s, 0));
            Assert.AreEqual(3, p.AsDynamic().IndexOfNextWhiteSpace(s, 1));
            Assert.AreEqual(3, p.AsDynamic().IndexOfNextWhiteSpace(s, 2));
            Assert.AreEqual(3, p.AsDynamic().IndexOfNextWhiteSpace(s, 3));
            Assert.AreEqual(7, p.AsDynamic().IndexOfNextWhiteSpace(s, 4));
            Assert.AreEqual(8, p.AsDynamic().IndexOfNextWhiteSpace(s, 8));
            Assert.AreEqual(11, p.AsDynamic().IndexOfNextWhiteSpace(s, 9));
            Assert.AreEqual(12, p.AsDynamic().IndexOfNextWhiteSpace(s, 12));
        }
Exemple #8
0
        public void Retrieves_Cost_From_Multiple_Simple_Statement()
        {
            var xml = simplePlan;

            var gateway = new Mock<QueryCostDataGateway>();
            gateway.Setup(p => p.GetPlanForQuery(It.IsAny<string>())).Returns(complexPlan);

            var parser = new PlanParser(gateway.Object);

            var statements = parser.GetStatements("blah");
            Assert.AreEqual(4, statements.Count);
            Assert.AreEqual(CostBand.High, statements[2].Band);


        }
Exemple #9
0
        public void Retrieves_Cost_From_Simple_Statement()
        {
            var xml = simplePlan;

            var gateway = new Mock<QueryCostDataGateway>();
            gateway.Setup(p => p.GetPlanForQuery(It.IsAny<string>())).Returns(xml);

            var parser = new PlanParser(gateway.Object);
            
            var statements = parser.GetStatements("blah");
            Assert.AreEqual(1, statements.Count);
            Assert.AreEqual(CostBand.Medium, statements.FirstOrDefault().Band);


        }
Exemple #10
0
        public void Retrieves_Cost_From_Multiple_Simple_Statement()
        {
            var xml = simplePlan;

            var gateway = new Mock <QueryCostDataGateway>();

            gateway.Setup(p => p.GetPlanForQuery(It.IsAny <string>())).Returns(complexPlan);

            var parser = new PlanParser(gateway.Object);

            var statements = parser.GetStatements("blah");

            Assert.AreEqual(4, statements.Count);
            Assert.AreEqual(CostBand.High, statements[2].Band);
        }
Exemple #11
0
        public void Retrieves_Cost_From_Simple_Statement()
        {
            var xml = simplePlan;

            var gateway = new Mock <QueryCostDataGateway>();

            gateway.Setup(p => p.GetPlanForQuery(It.IsAny <string>())).Returns(xml);

            var parser = new PlanParser(gateway.Object);

            var statements = parser.GetStatements("blah");

            Assert.AreEqual(1, statements.Count);
            Assert.AreEqual(CostBand.Medium, statements.FirstOrDefault().Band);
        }
Exemple #12
0
        public void TestParseText()
        {
            var p = new PlanParser();

            p.Text = "loop 10\r\n% 100 100 test";
            var pss  = p.AsDynamic().ParseText();
            var npss = new List <PlanSection>();

            npss.AddRange(pss);
            Assert.AreEqual(2, npss.Count);

            p.Text = "loop 10\r\n% loop 10\r\n% % 100 100 test";
            pss    = p.AsDynamic().ParseText();
            npss   = new List <PlanSection>();
            npss.AddRange(pss);
        }
Exemple #13
0
        public void TestParse()
        {
            var p = new PlanParser();

            p.Text = "loop 10\r\n% 100 100 test";
            var pss  = p.AsDynamic().Parse();
            var npss = new List <PlanSection>();

            npss.AddRange(pss);
            Assert.AreEqual(10, npss.Count);
            Assert.AreEqual(1, npss[0].LoopIndex.Count);
            Assert.AreEqual(0, npss[0].LoopIndex[0]);
            Assert.AreEqual(1, npss[9].LoopIndex.Count);
            Assert.AreEqual(9, npss[9].LoopIndex[0]);

            p.Text = "loop 10\r\n% loop 10\r\n% % 100 100 test";
            pss    = p.AsDynamic().Parse();
            npss   = new List <PlanSection>();
            npss.AddRange(pss);
            Assert.AreEqual(100, npss.Count);
        }
Exemple #14
0
 public static Plan Parse(string s)
 {
     return(PlanParser.Parse(s));
 }