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.");
        }
Example #5
0
        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));
        }
Example #7
0
        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);
 }