コード例 #1
0
        public void NextAvailable()
        {
            var binder = new ObjectBinderBuilder <object>();

            binder.Use(typeof(Binder));
            var called = false;

            binder.Use(n => c => { called = true; });

            var ctx = new BindingContext <object>(ObjectBindingDirection.In, null);

            binder.Build()(ctx);

            Assert.True(called);
        }
コード例 #2
0
        public void WrongBindMethodThrows()
        {
            var binder = new ObjectBinderBuilder <object>();

            binder.Use(typeof(WrongBindMethodGenericParameter));

            Assert.Throws <InvalidOperationException>(() => binder.Build());
        }
コード例 #3
0
        public void MissingBindMethodThrows()
        {
            var binder = new ObjectBinderBuilder <object>();

            binder.Use(typeof(MissingBindMethod));

            Assert.Throws <InvalidOperationException>(() => binder.Build());
        }
コード例 #4
0
        public void ConstructorArgsPassed()
        {
            var binder = new ObjectBinderBuilder <object>();

            binder.Use(typeof(BinderWithCtrArgs), "str");

            var ctx = new BindingContext <object>(ObjectBindingDirection.In, null);

            binder.Build()(ctx);

            Assert.Equal("str", ctx.ObjectValue as string);
        }
コード例 #5
0
        public void BindCalled()
        {
            var binder = new ObjectBinderBuilder <object>();

            binder.Use(typeof(Binder));

            var ctx = new BindingContext <object>(ObjectBindingDirection.In, null);

            binder.Build()(ctx);

            Assert.Equal("string", ctx.ObjectValue as string);
        }
コード例 #6
0
        public void ComponentsCalledInOrder()
        {
            var stringBuilder = new StringBuilder();
            var builder       = new ObjectBinderBuilder <object>();

            builder.Use(next => ctx =>
            {
                stringBuilder.Append("1");
                next(ctx);
            });

            builder.Use(next => ctx =>
            {
                stringBuilder.Append("2");
                next(ctx);
            });
            var binder = builder.Build();

            binder(new BindingContext <object>(ObjectBindingDirection.In, null));

            Assert.Equal("12", stringBuilder.ToString());
        }