public void NullTargetShouldThrow() { var guard = new Guard<object>(); guard.AddPredicate(o => o != null, o => new ArgumentNullException()); guard.Evaluate(null); }
public void NoPredicatesShouldReturnTarget() { var target = new object(); var guard = new Guard<object>(); Assert.AreEqual(target, guard.Evaluate(target)); }
public void NullCreateExceptionShouldThrow() { var guard = new Guard<object>(); guard.AddPredicate(o => o != null, null); Assert.Fail("Should have thrown ArgumentNullException."); }
public void NullPredicateShouldThrow() { var guard = new Guard<object>(); guard.AddPredicate(null, o => new Exception()); Assert.Fail("Should have thrown ArgumentNullException."); }
public Transition(FSMEvent trigger, State target, Guard guard, Action action) { this.trigger = trigger; this.target = target; this.guard = guard; this.action = action; }
public void SuccessfulEvaluationShouldReturnTarget() { var target = new object(); var guard = new Guard<object>(); guard.AddPredicate(o => o != null, o => new ArgumentNullException()); Assert.AreEqual(target, guard.Evaluate(target)); }
public Dictionary<Version, SqlFileInfo> FindUnappliedMigrationsSince(Version version, SqlDirInfo dir, Guard guard = null) { var r = new Dictionary<Version, SqlFileInfo>(); foreach (FileInfo file in dir.DirectoryInfo.GetFiles()) { string name = file.Name; Version fileVersion = new Version(name); if (fileVersion.GetVersion() > 0) { if (guard.IsMigrationAllowed(file, version, fileVersion)) { r.Add(fileVersion, new SqlFileInfo {FileInfo = file, SqlInsertMigration = dir.SqlInsertMigration}); log.Debug(String.Format("{0} is a potential candidate for migration", name), "migration"); } } } return r; }
/// <summary> /// Add a transition. /// </summary> /// <param name="source">The source state name.</param> /// <param name="target">The target state name.</param> /// <param name="eventName">The event name that triggers this transition.</param> /// <param name="predicate">The guard predicate for this transition.</param> /// <param name="action">An action callback to be called if this transition is triggered.</param> public void AddTransition(string source, string target, FSMEvent trigger, Guard guard, Action action) { if(!states.ContainsKey(source)) { throw new ArgumentException("No such source state found"); } if(!states.ContainsKey(target)) { throw new ArgumentException("No such target state found"); } states[source].AddTransition(new Transition(trigger, states[target], guard, action)); }
/// <summary> /// Add a transition. /// </summary> /// <param name="source">The source state name.</param> /// <param name="target">The target state name.</param> /// <param name="eventName">The event name that triggers this transition.</param> /// <param name="guard">The guard predicate for this transition.</param> public void AddTransition(string source, string target, FSMEvent trigger, Guard guard) { AddTransition(source, target, trigger, guard, null); }