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