Beispiel #1
0
        public void JsonSerialize_PatternWithVar_JsonEqualsToDsl()
        {
            var patternRoot = new PatternRoot
            {
                Node = new PatternStatements
                {
                    Statements = new List <PatternUst>
                    {
                        new PatternAssignmentExpression
                        {
                            Left = new PatternVar("pwd")
                            {
                                Value = new PatternIdRegexToken("password")
                            },
                            Right = new PatternAny()
                        },

                        new PatternInvocationExpression
                        {
                            Target    = new PatternAny(),
                            Arguments = new PatternArgs(
                                new PatternMultipleExpressions(),
                                new PatternVar("pwd"),
                                new PatternMultipleExpressions())
                        }
                    }
                }
            };

            var jsonSerializer = new JsonPatternSerializer
            {
                Indented         = true,
                IncludeTextSpans = false
            };

            string      json         = jsonSerializer.Serialize(patternRoot);
            PatternRoot nodeFromJson = jsonSerializer.Deserialize(new TextFile(json)
            {
                PatternKey = "PatternWithVar"
            });

            var dslSeializer = new DslProcessor()
            {
                PatternExpressionInsideStatement = false
            };
            var nodeFromDsl = dslSeializer.Deserialize(
                new TextFile("<[@pwd:password]> = #; ... #(#*, <[@pwd]>, #*);")
            {
                PatternKey = "PatternWithVar2"
            });

            Assert.IsTrue(nodeFromJson.Node.Equals(patternRoot.Node));
            Assert.IsTrue(nodeFromJson.Node.Equals(nodeFromDsl.Node));
        }
Beispiel #2
0
        public Workflow(SourceRepository sourceRepository      = null,
                        IPatternsRepository patternsRepository = null, Stage stage = Stage.Match)
            : base(stage)
        {
            LogsDir            = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "PT.PM");
            DumpDir            = LogsDir;
            TempDir            = Path.Combine(Path.GetTempPath(), "PT.PM");
            SourceRepository   = sourceRepository;
            PatternsRepository = patternsRepository ?? new DefaultPatternRepository();
            IPatternSerializer jsonNodeSerializer = new JsonPatternSerializer();
            IPatternSerializer dslNodeSerializer  = new DslProcessor();

            PatternConverter = new PatternConverter(jsonNodeSerializer, dslNodeSerializer);
            Stage            = stage;
        }