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)); }
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; }