protected Logger()
        {
            _disablers = new Stack <object>();

            _handlers = ChainOfResponsibility.Empty <LogEntry>()
                        .Chain(new LogEntryLink <TaskLog>(Insert, Update))
                        .Chain(new LogEntryLink <StepLog>(Insert, Update))
                        .Chain(new LogEntryLink <MessageLog>(Insert));
        }
        public void Handled_HandlerReturnsValue()
        {
            var chain = ChainOfResponsibility
                        .Empty <int, string>()
                        .Chain(new IntToStringLink(1))
                        .Chain(new IntToStringLink(2))
                        .Chain(new IntToStringLink(3));

            Assert.That(chain.Handle(2), Is.EqualTo("2"));
        }
        public void NotHandled_DefaultReturned()
        {
            var chain = ChainOfResponsibility
                        .Empty <int, string>()
                        .Chain(new IntToStringLink(1))
                        .Chain(new IntToStringLink(2))
                        .Chain(new IntToStringLink(3));

            Assert.That(chain.Handle(5), Is.Null);
        }
Example #4
0
        protected Logger()
        {
            this._disablers = new Stack <object>();
            ChainOfResponsibilityLink <LogEntry> chainOfResponsibilityLink = ChainOfResponsibility.Empty <LogEntry>();
            Logger logger  = this;
            Logger logger1 = this;
            ChainOfResponsibilityLink <LogEntry> chainOfResponsibilityLink1 = chainOfResponsibilityLink.Chain(new Logger.LogEntryLink <TaskLog>(new Func <TaskLog, string>(logger.Insert), new Action <TaskLog>(logger1.Update)));
            Logger logger2 = this;
            Logger logger3 = this;
            Logger logger4 = this;

            this._handlers = chainOfResponsibilityLink1.Chain(new Logger.LogEntryLink <StepLog>(new Func <StepLog, string>(logger2.Insert), new Action <StepLog>(logger3.Update))).Chain(new Logger.LogEntryLink <MessageLog>(new Func <MessageLog, string>(logger4.Insert), null));
        }
        public void TryNotHandled_False_AndDefaultReturned()
        {
            var chain = ChainOfResponsibility
                        .Empty <int, string>()
                        .Chain(new IntToStringLink(1))
                        .Chain(new IntToStringLink(2))
                        .Chain(new IntToStringLink(3));

            string result;

            Assert.That(chain.TryHandle(5, out result), Is.False);
            Assert.That(result, Is.Null);
        }
        public void TryHandle_True_AndHandlerReturnsValue()
        {
            var chain = ChainOfResponsibility
                        .Empty <int, string>()
                        .Chain(new IntToStringLink(1))
                        .Chain(new IntToStringLink(2))
                        .Chain(new IntToStringLink(3));

            string result;

            Assert.That(chain.TryHandle(2, out result), Is.True);
            Assert.That(result, Is.EqualTo("2"));
        }
        public void TryNotHandled_ContextNotModified()
        {
            var chain = ChainOfResponsibility
                        .Empty <Context>()
                        .Chain(new ToUpperIfStartsWith("1"))
                        .Chain(new ToUpperIfStartsWith("2"))
                        .Chain(new ToUpperIfStartsWith("3"));

            var context = new Context("5_a");

            Assert.That(chain.TryHandle(context), Is.False);
            Assert.That(context.S, Is.EqualTo("5_a"));
        }
        public void Handled_ContextModifed()
        {
            var chain = ChainOfResponsibility
                        .Empty <Context>()
                        .Chain(new ToUpperIfStartsWith("1"))
                        .Chain(new ToUpperIfStartsWith("2"))
                        .Chain(new ToUpperIfStartsWith("3"));

            var context = new Context("2_a");

            chain.Handle(context);
            Assert.That(context.S, Is.EqualTo("2_A"));
        }
        public void IChainOfResponsibility_Works_JustFine()
        {
            var chain = ChainOfResponsibility.Empty <int, string>()
                        .Chain(new ResponsibleLink <int, string>(new MultiLink(2)))
                        .Chain(new MultiLink(1));

            var anotherchain = ChainOfResponsibility
                               .Empty <Exception>()
                               .Chain(new ResponsibleLink <Exception>(new MultiLink()))
                               .Chain(new MultiLink());

            Assert.That(chain.Handle(1), Is.EqualTo("1"));
            var ex = new Exception();

            anotherchain.Handle(ex);
            Assert.That(ex.Data, Is.Not.Empty);
        }
        private ChainOfResponsibilityLink <int, string> initChainOfSubstitutes(
            out ChainOfResponsibilityLink <int, string> first,
            out ChainOfResponsibilityLink <int, string> second,
            out ChainOfResponsibilityLink <int, string> third
            )
        {
            first  = Substitute.For <ChainOfResponsibilityLink <int, string> >();
            second = Substitute.For <ChainOfResponsibilityLink <int, string> >();
            third  = Substitute.For <ChainOfResponsibilityLink <int, string> >();

            var chain = ChainOfResponsibility
                        .Empty <int, string>()
                        .Chain(first)
                        .Chain(second)
                        .Chain(third);

            return(chain);
        }
Example #11
0
        public MonitorWorkItem(MonitorConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            DateTimeOffset utcNow = Time.UtcNow;

            if (configuration.LastRun > utcNow)
            {
                utcNow = configuration.LastRun;
            }
            this._checkRange      = new Range <DateTimeOffset>(configuration.LastRun, utcNow);
            this._entries         = new List <Tuple <Target, MonitorEntry> >();
            this._ignore          = new List <ISpecification <MonitorEntry> >();
            this._redirects       = ChainOfResponsibility.Empty <MonitorEntry, Target[]>();
            this._messageGrouping = new List <Regex>();
            this.Configuration    = configuration;
        }
        public void FluentChain_LinkingTwo_InnerChaining()
        {
            var l1 = new IToUpperIfStartsWith("1");
            var l2 = new IToUpperIfStartsWith("2");

            ChainOfResponsibilityLink <Context> chain = ChainOfResponsibility
                                                        .Empty <Context>()
                                                        .Chain(l1)
                                                        .Chain(l2);

            //Assert.That(chain, Is.SameAs(l2));

            //Assert.That(l1.Next, Is.SameAs(l2));
            //Assert.That(l2.Next, Is.Null);
            var ctx = new Context("2a");

            chain.Handle(ctx);
            Assert.That(ctx.S, Is.EqualTo("2A"));
        }
Example #13
0
        public MonitorWorkItem(MonitorConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            DateTimeOffset upperBound = Time.UtcNow;

            if (configuration.LastRun > upperBound)
            {
                upperBound = configuration.LastRun;
            }

            CheckRange       = new Range <DateTimeOffset>(configuration.LastRun, upperBound);
            _entries         = new List <Tuple <Target, MonitorEntry> >();
            _ignore          = new List <ISpecification <MonitorEntry> >();
            _redirects       = ChainOfResponsibility.Empty <MonitorEntry, Target[]>();
            _messageGrouping = new List <Regex>();

            Configuration = configuration;
        }