示例#1
0
        public void TestThatSimpleRuleWorkCorrect()
        {
            // Arrange

            var text   = "int a;";
            var name   = "name";
            var stream = new MemoryStream().FromString(text);

            var tokenPatter = new TokenExpression(name, new Dictionary <string, int> {
                { "type", 0 },
                { "name", 2 }
            });

            var rule = new UserRule(name: name, rulePattern: this.rawRule, tokenConvertionPattern: tokenPatter);

            // Act

            rule.Check(stream);
            var result = rule.Convert();

            // Assert

            Assert.AreEqual(result.Name, name);
            Assert.IsNull(result.Value);
            Assert.AreEqual(2, result.Childs.Count);
            var type = result.Childs.FirstOrDefault(x => x.Name == "type");

            Assert.IsNotNull(type);
            Assert.AreEqual(0, type.Childs.Count);
            Assert.AreEqual("int", type.Value);
            var vrName = result.Childs.FirstOrDefault(x => x.Name == "name");

            Assert.IsNotNull(vrName);
            Assert.AreEqual(0, vrName.Childs.Count);
            Assert.AreEqual("a", vrName.Value);
        }