Exemplo n.º 1
0
 public void testRssReader()
 {
     rule targetRule = new rule();
     ruleItemRss rss = (ruleItemRss) targetRule.addRuleItem(new ruleItemInfo(typeof(ruleItemRss)));
     rss._options.url = "file://" + Path.GetFullPath(Properties.Settings.Default.testDataPath) + @"\test.rss";
     rss.pinInfo["trigger"].value.data = true;
     targetRule.start();
     rss.evaluate();
     targetRule.advanceDelta();
     Assert.AreEqual("hi <3", rss.pinInfo["feed Title"].value.data);
     Assert.AreEqual("Hello World", rss.pinInfo["feed Content"].value.data);
     rss.pinInfo["trigger"].value.data = true;
     rss.evaluate();
     targetRule.advanceDelta();
     Assert.AreEqual("test entry", rss.pinInfo["feed Title"].value.data);
     Assert.AreEqual("Test 'details'", rss.pinInfo["feed Content"].value.data);
     targetRule.stop();
     rss._options.url = "file://" + Path.GetFullPath(Properties.Settings.Default.testDataPath) + @"\test.atom";
     targetRule.start();
     rss.evaluate();
     targetRule.advanceDelta();
     Assert.AreEqual("Atom-Powered Robots Run Amok", rss.pinInfo["feed Title"].value.data);
     Assert.AreEqual("Some text.", rss.pinInfo["feed Content"].value.data);
     rss.evaluate();
     targetRule.advanceDelta();
     Assert.AreEqual("lol", rss.pinInfo["feed Title"].value.data);
     Assert.AreEqual("test", rss.pinInfo["feed Content"].value.data);
     targetRule.stop();
 }
Exemplo n.º 2
0
        public void testStartRunRuleItem()
        {
            rule foo = new rule();
            ruleItemBase newItem = foo.addRuleItem(new ruleItemInfo(typeof(ruleItem_startRun)));

            foo.start();
            Assert.AreEqual(false, newItem.pinInfo["StartOfSim"].value.data);
            foo.advanceDelta();
            Assert.AreEqual(true, newItem.pinInfo["StartOfSim"].value.data);
            foo.advanceDelta();
            Assert.AreEqual(false, newItem.pinInfo["StartOfSim"].value.data);
            foo.stop();
        }
Exemplo n.º 3
0
        public void testStartRunRuleItemLinkedToDebugItem()
        {
            rule targetRule = new rule();
            ruleItemBase startItem = targetRule.addRuleItem(new ruleItemInfo(typeof(ruleItem_startRun)));
            ruleItemBase debugItem = targetRule.addRuleItem(new ruleItemInfo(typeof(ruleItem_debug)));

            lineChain newChain = new lineChain();
            startItem.pinInfo["StartOfSim"].connectTo(newChain.serial, debugItem.pinInfo["input"]);
            targetRule.AddLineChainToGlobalPool(newChain);

            targetRule.start();
            Assert.AreEqual(false, startItem.pinInfo["StartOfSim"].value.data);
            Assert.AreEqual(tristate.noValue, debugItem.pinInfo["input"].value.data);
            targetRule.advanceDelta();
            Assert.AreEqual(true, startItem.pinInfo["StartOfSim"].value.data);
            Assert.AreEqual(tristate.yes, debugItem.pinInfo["input"].value.data);
            targetRule.advanceDelta();
            Assert.AreEqual(false, startItem.pinInfo["StartOfSim"].value.data);
            Assert.AreEqual(tristate.no, debugItem.pinInfo["input"].value.data);
            targetRule.stop();
        }
Exemplo n.º 4
0
        public void testSwitchRuleItem()
        {
            rule targetRule = new rule();
            ruleItem_switch switchRule = (ruleItem_switch)targetRule.addRuleItem(new ruleItemInfo(typeof(ruleItem_switch)));

            targetRule.start();
            //test bools
            switchRule.pinInfo["inputTrue"].value.data = true;
            switchRule.pinInfo["inputFalse"].value.data = false;
            switchRule.pinInfo["switch"].value.data = false;
            //must start as tristate and noValue
            Assert.IsInstanceOfType(switchRule.pinInfo["output"].value.data, typeof(tristate));
            Assert.AreEqual(switchRule.pinInfo["output"].value.data,tristate.noValue);
            switchRule.evaluate();
            targetRule.advanceDelta();
            Assert.IsInstanceOfType(switchRule.pinInfo["output"].value.data, typeof(bool));
            Assert.IsFalse((bool) switchRule.pinInfo["output"].value.data);
            switchRule.pinInfo["switch"].value.data = true;
            switchRule.evaluate();
            targetRule.advanceDelta();
            Assert.IsTrue((bool) switchRule.pinInfo["output"].value.data);
            //test string and bool
            switchRule.pinInfo["inputFalse"].valueType = typeof(pinDataString);
            switchRule.pinInfo["inputFalse"].recreateValue();
            switchRule.pinInfo["inputFalse"].value.data = "True";
            switchRule.pinInfo["switch"].value.data = false;
            switchRule.evaluate();
            targetRule.advanceDelta();
            Assert.IsInstanceOfType(switchRule.pinInfo["output"].value.data, typeof(string));
            Assert.AreEqual(switchRule.pinInfo["output"].value.data, "True");
            switchRule.pinInfo["switch"].value.data = true;
            switchRule.evaluate();
            targetRule.advanceDelta();
            Assert.IsInstanceOfType(switchRule.pinInfo["output"].value.data, typeof(bool));
            Assert.IsTrue((bool) switchRule.pinInfo["output"].value.data);
            //test int and bool
            switchRule.pinInfo["inputFalse"].valueType = typeof(pinDataNumber);
            switchRule.pinInfo["inputFalse"].recreateValue();
            switchRule.pinInfo["inputFalse"].value.data = new GenericNumber<short>(255);
            switchRule.pinInfo["switch"].value.data = false;
            switchRule.evaluate();
            targetRule.advanceDelta();
            Assert.IsInstanceOfType(switchRule.pinInfo["output"].value.data, typeof(INumber));
            Assert.AreEqual(switchRule.pinInfo["output"].value.data, new GenericNumber<short>(255));
            switchRule.pinInfo["switch"].value.data = true;
            switchRule.evaluate();
            targetRule.advanceDelta();
            Assert.IsInstanceOfType(switchRule.pinInfo["output"].value.data, typeof(bool));
            Assert.AreEqual(switchRule.pinInfo["output"].value.data, true);
            //bool and tristate
            switchRule.pinInfo["inputFalse"].valueType = typeof(pinDataTristate);
            switchRule.pinInfo["inputFalse"].recreateValue();
            switchRule.pinInfo["inputFalse"].value.data = tristate.yes;
            switchRule.pinInfo["switch"].value.data = false;
            switchRule.evaluate();
            targetRule.advanceDelta();
            Assert.IsInstanceOfType(switchRule.pinInfo["output"].value.data, typeof(tristate));
            Assert.AreEqual(switchRule.pinInfo["output"].value.data, tristate.yes);
            targetRule.stop();
        }