public void MultipleANDFail2() { BooleanCondition bc = new BooleanCondition(); bc.AddCondition(new MockCondition(true), BooleanCondition.ConditionType.AND); bc.AddCondition(new MockCondition(false), BooleanCondition.ConditionType.AND); bool isMet = bc.IsMet(null); Assert.IsFalse(isMet); }
public ZippedFilesUpdateTask() { Attributes = new Dictionary<string, string>(); _coldUpdates = new Dictionary<string, string>(); _warmUpdates = new Dictionary<string, string>(); _directoriesToCreate = new List<string>(); UpdateConditions = new BooleanCondition(); // TODO: replace this with something from the updatemanager _appPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); }
public void LastORPass() { BooleanCondition bc = new BooleanCondition(); bc.AddCondition(new MockCondition(false), BooleanCondition.ConditionType.AND); bc.AddCondition(new MockCondition(false), BooleanCondition.ConditionType.AND); bc.AddCondition(new MockCondition(true), BooleanCondition.ConditionType.OR); bool isMet = bc.IsMet(null); Assert.IsTrue(isMet); }
public void ShortCircuitOR() { BooleanCondition bc = new BooleanCondition(); bc.AddCondition(new MockCondition(true), BooleanCondition.ConditionType.OR); bc.AddCondition(new MockCondition(true), BooleanCondition.ConditionType.OR); bc.AddCondition(new MockCondition(false), BooleanCondition.ConditionType.OR); bool isMet = bc.IsMet(null); Assert.IsTrue(isMet, "Expected the second or to short circuit the condition list"); }
private IUpdateCondition ReadCondition(XmlNode cnd) { IUpdateCondition conditionObject = null; if (cnd.ChildNodes.Count > 0 || "GroupCondition".Equals(cnd.Name)) { BooleanCondition bc = new BooleanCondition(); foreach (XmlNode child in cnd.ChildNodes) { IUpdateCondition childCondition = ReadCondition(child); if (childCondition != null) bc.AddCondition(childCondition, BooleanCondition.ConditionTypeFromString(child.Attributes["type"] == null ? null : child.Attributes["type"].Value)); } if (bc.ChildConditionsCount > 0) conditionObject = bc.Degrade(); } else if (_updateConditions.ContainsKey(cnd.Name)) { conditionObject = (IUpdateCondition)Activator.CreateInstance(_updateConditions[cnd.Name]); // Store all other attributes, to be used by the condition object later foreach (XmlAttribute att in cnd.Attributes) { if ("type".Equals(att.Name)) continue; conditionObject.Attributes.Add(att.Name, att.Value); } } return conditionObject; }
public LengthyTask() { UpdateConditions = new BooleanCondition(); ExecutionStatus = TaskExecutionStatus.Pending; }
public void Not() { BooleanCondition bc = new BooleanCondition(); bc.AddCondition(new MockCondition(false), BooleanCondition.ConditionType.AND | BooleanCondition.ConditionType.NOT); bool isMet = bc.IsMet(null); Assert.IsTrue(isMet); }