Пример #1
0
        public void ConditionalTest1()
        {
            {
                MFsh mfsh = CreateMfsh();
                mfsh.GlobalVars.Add("CVar", "abc");
                mfsh.Load(TestFile("MFshConditional1.mfsh"));
                CheckErrors(mfsh);
                mfsh.Process();
                CheckErrors(mfsh);

                StringBuilder sb = new StringBuilder();
                sb.Append("Yes\n");
                Assert.True(mfsh.TryGetTextByRelativePath("MFshConditional1.fsh", out String fsh));
                Assert.True(fsh == sb.ToString());
            }

            {
                MFsh mfsh = CreateMfsh();
                mfsh.GlobalVars.Add("CVar", "def");
                mfsh.Load(TestFile("MFshConditional1.mfsh"));
                CheckErrors(mfsh);
                mfsh.Process();
                CheckErrors(mfsh);

                StringBuilder sb = new StringBuilder();
                sb.Append("No\n");
                Assert.True(mfsh.TryGetTextByRelativePath("MFshConditional1.fsh", out String fsh));
                Assert.True(fsh == sb.ToString());
            }
        }
Пример #2
0
 public ApplicableManager(MFsh mfsh)
 {
     this.baseNamespace = new Namespace();
     this.nameSpaces    = new Dictionary <string, Namespace>();
     this.nameSpaces.Add("", this.baseNamespace);
     this.Mfsh = mfsh;
 }
Пример #3
0
        public void ConditionalTest3()
        {
            void Test(String val, String result)
            {
                MFsh mfsh = CreateMfsh();

                mfsh.GlobalVars.Add("CVar", val);
                mfsh.Load(TestFile("MFshConditional3.mfsh"));
                CheckErrors(mfsh);
                mfsh.Process();
                CheckErrors(mfsh);

                StringBuilder sb = new StringBuilder();

                sb.Append($"{result}\n");
                Assert.True(mfsh.TryGetTextByRelativePath("MFshConditional3.fsh", out String fsh));
                Assert.True(fsh == sb.ToString());
            }

            Test("4", "LT");
            Test("9", "LE");
            Test("8", "LE");

            Test("16", "GT");
            Test("12", "GE");
            Test("14", "GE");
        }
Пример #4
0
        public MFSHVisitor(MFsh mfsh,
                           string sourceName)
        {
            this.SourceName = sourceName;
            this.mfsh       = mfsh;
            ParseBlock f = new ParseBlock("base");

            this.PushState(f);
        }
Пример #5
0
        MFsh CreateMfsh()
        {
            MFsh mfsh = new MFsh();

            mfsh.DebugFlag     = true;
            mfsh.BaseInputDir  = Path.GetFullPath("TestFiles");
            mfsh.BaseUrl       = "http://www.test.com";
            mfsh.BaseOutputDir = @"c:\Temp\MFSHTests";
            return(mfsh);
        }
Пример #6
0
 public ErrorListener(MFsh mFsh,
                      String parserName,
                      String sourceName,
                      String[] inputLines)
 {
     this.parserName = parserName;
     this.sourceName = sourceName;
     this.mFsh       = mFsh;
     this.inputLines = inputLines;
 }
Пример #7
0
        MIPreFsh ParseTest(String mfshFile, out MFsh mfsh)
        {
            String input = GetCleanText(mfshFile);

            mfsh = new MFsh();
            mfsh.TraceLogging(true, true, true);
            MIPreFsh b = mfsh.Parser.ParseOne(input, "test");

            Assert.True(mfsh.HasErrors == false);
            return(b);
        }
Пример #8
0
        void CheckErrors(MFsh mfsh)
        {
            if (mfsh.HasErrors == false)
            {
                return;
            }

            StringBuilder sb = new StringBuilder();

            mfsh.FormatErrorMessages(sb);
            Trace.WriteLine(sb.ToString());
            Assert.True(false);
        }
Пример #9
0
        void ParseTest(String testFile, String resultsFile)
        {
            MFsh mfsh = CreateMfsh();

            mfsh.TraceLogging(true, true, true);
            mfsh.Load(TestFile($"{testFile}.mfsh"));
            CheckErrors(mfsh);
            mfsh.Process();
            CheckErrors(mfsh);
            Assert.True(mfsh.Parser.Fsh.Count == 1);
            String shouldBe = this.GetCleanText(resultsFile);

            Assert.True(mfsh.TryGetTextByRelativePath($"{testFile}.fsh", out String actualResults));
            Assert.True(String.Compare(actualResults, shouldBe) == 0);
        }
Пример #10
0
        public void MacroTest2()
        {
            MFsh mfsh = CreateMfsh();

            mfsh.Load(TestFile("MFshMacroTest2.mfsh"));
            CheckErrors(mfsh);
            mfsh.Process();
            CheckErrors(mfsh);

            StringBuilder sb = new StringBuilder();

            sb.Append("Line one\n");
            sb.Append("Line two\n");
            sb.Append("Line three\n");
            Assert.True(mfsh.TryGetTextByRelativePath("MFshMacroTest2.fsh", out String fsh));
            Assert.True(fsh == sb.ToString());
        }
Пример #11
0
        public void FragTest1()
        {
            {
                MFsh mfsh = CreateMfsh();
                mfsh.Load(TestFile("MFshFragTest1A.mfsh"));
                CheckErrors(mfsh);
                mfsh.Load(TestFile("MFshFragTest1B.mfsh"));
                CheckErrors(mfsh);
                mfsh.Process();
                CheckErrors(mfsh);

                Assert.True(mfsh.MacroMgr.TryGetItem("Frag1", out MIApplicable item));
                MIFragment frag = (MIFragment)item;
                Assert.True(frag.Name == "Frag1");
                Assert.True(frag.Parent == "Observation");
                Assert.True(frag.Title == "Frag1 Title");
                Assert.True(frag.Description == "Frag1 Description");

                StringBuilder sb = new StringBuilder();
                sb.Append("Line 1\n");
                sb.Append("Line 2\n");
                sb.Append("Line 3\n");
                Assert.True(mfsh.TryGetTextByRelativePath("MFshFragTest1B.fsh", out String fsh));
                Assert.True(fsh == sb.ToString());
            }

            {
                MFsh mfsh = CreateMfsh();
                mfsh.Load(TestFile("MFshFragTest1A.mfsh"));
                CheckErrors(mfsh);
                mfsh.Load(TestFile("MFshFragTest1C.mfsh"));
                CheckErrors(mfsh);
                mfsh.Process();
                CheckErrors(mfsh);

                StringBuilder sb = new StringBuilder();
                sb.Append("Line 1\n");
                sb.Append("Line 2\n");
                sb.Append("Line 2\n");
                sb.Append("Line 2\n");
                sb.Append("Line 2\n");
                sb.Append("Line 3\n");
                Assert.True(mfsh.TryGetTextByRelativePath("MFshFragTest1C.fsh", out String fsh));
                Assert.True(fsh == sb.ToString());
            }
        }
Пример #12
0
        public void MacroTest1()
        {
            {
                MFsh mfsh = CreateMfsh();
                mfsh.Load(TestFile("MFshMacroTest1A.mfsh"));
                CheckErrors(mfsh);
                mfsh.Load(TestFile("MFshMacroTest1B.mfsh"));
                CheckErrors(mfsh);
                mfsh.Process();
                CheckErrors(mfsh);

                StringBuilder sb = new StringBuilder();
                sb.Append("Line 1\n");
                sb.Append("Line 2\n");
                sb.Append("Line 3\n");
                Assert.True(mfsh.TryGetTextByRelativePath("MFshMacroTest1B.fsh", out String fsh));
                Assert.True(fsh == sb.ToString());
            }

            {
                MFsh mfsh = CreateMfsh();
                mfsh.Load(TestFile("MFshMacroTest1A.mfsh"));
                CheckErrors(mfsh);
                mfsh.Load(TestFile("MFshMacroTest1C.mfsh"));
                CheckErrors(mfsh);
                mfsh.Process();
                CheckErrors(mfsh);

                StringBuilder sb = new StringBuilder();
                sb.Append("Line 1\n");
                sb.Append("Line 2\n");
                sb.Append("Line 3\n");
                Assert.True(mfsh.TryGetTextByRelativePath("MFshMacroTest1C.fsh", out String fsh));
                Assert.True(fsh == sb.ToString());
            }
        }
Пример #13
0
 public MFSHErrorListenerLexer(MFsh mFsh,
                               String parserName,
                               String sourceName,
                               String[] inputLines) : base(mFsh, parserName, sourceName, inputLines)
 {
 }