public void WriteJsonToFile() { Task.Run(async() => { //create tree Initiator root = new Initiator(); DecisionMultiplier child = new DecisionMultiplier() { Paths = new List <DecisionPath>(), }; child.Paths.Add(new DecisionPath() { Value = 25, NextStep = new OperationMultiplier() { NextStep = new Terminator() } }); child.Paths.Add(new DecisionPath() { Value = 75, NextStep = new OperationAdder() { NextStep = new Terminator() } }); root.NextStep = child; DefaultContractResolver contractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy() }; string json = Newtonsoft.Json.JsonConvert.SerializeObject(root, new JsonSerializerSettings { ContractResolver = contractResolver, Formatting = Formatting.Indented, TypeNameHandling = Newtonsoft.Json.TypeNameHandling.Auto }); File.WriteAllText(@"..\..\example.json", json); //create data TestData data = new TestData() { A = 5, B = 10 }; FlowManager man = new FlowManager(); bool result = await man.Execute(root, data); //should go through to id 3 and therefore result = A + B Assert.IsTrue(result); Assert.AreEqual(15, data.Result); Assert.AreEqual(4, man.ProcessedCounter); }).GetAwaiter().GetResult(); }
public void DecisionMultiplierTest() { Task.Run(async() => { //create tree Initiator root = new Initiator(); DecisionMultiplier child = new DecisionMultiplier() { Paths = new List <DecisionPath>(), }; child.Paths.Add(new DecisionPath() { Value = 25, NextStep = new OperationMultiplier() { NextStep = new Terminator() } }); child.Paths.Add(new DecisionPath() { Value = 75, NextStep = new OperationAdder() { NextStep = new Terminator() } }); root.NextStep = child; //create data TestData data = new TestData() { A = 5, B = 2 }; FlowManager man = new FlowManager(); bool result = await man.Execute(root, data); //should go through to id 2 and therefore result = A * B Assert.IsTrue(result); Assert.AreEqual(10, data.Result); Assert.AreEqual(4, man.ProcessedCounter); }).GetAwaiter().GetResult(); }