Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }