public void Should_be_able_to_bind_interfaces()
        {
            var binder        = new InterfaceModelBinder();
            var locator       = new DefaultModelBinderLocator(new IModelBinder[] { binder }, this.defaultBinder);
            var locatedBinder = locator.GetBinderForType(typeof(Concrete), A <NancyContext> .Ignored);

            var result = locatedBinder.Bind(null, typeof(Concrete)) as IAmAnInterface;

            result.ShouldNotBeNull();
        }
        public void Should_be_able_to_bind_interfaces()
        {
            var binder = new InterfaceModelBinder();
            var locator = new DefaultModelBinderLocator(new IModelBinder[] { binder }, this.defaultBinder);
            var locatedBinder = locator.GetBinderForType(typeof(Concrete), A<NancyContext>.Ignored);

            var result = locatedBinder.Bind(null, typeof(Concrete)) as IAmAnInterface;

            result.ShouldNotBeNull();
        }
        public void Should_be_able_to_bind_interfaces_using_module_extensions()
        {
            var binder = new InterfaceModelBinder();
            var locator = new DefaultModelBinderLocator(new IModelBinder[] { binder }, this.defaultBinder);
            var module = new TestBindingModule();
            module.Context = new NancyContext() { Request =  new FakeRequest("GET", "/") };
            module.ModelBinderLocator = locator;

            var result = module.TestBindInterface();
            var result2 = module.TestBindConcrete();

            result.ShouldNotBeNull();
            result2.ShouldNotBeNull();
        }
        public void Should_be_able_to_bind_interfaces_using_module_extensions()
        {
            var binder  = new InterfaceModelBinder();
            var locator = new DefaultModelBinderLocator(new IModelBinder[] { binder }, this.defaultBinder);
            var module  = new TestBindingModule();

            module.Context = new NancyContext()
            {
                Request = new FakeRequest("GET", "/")
            };
            module.ModelBinderLocator = locator;

            var result  = module.TestBindInterface();
            var result2 = module.TestBindConcrete();

            result.ShouldNotBeNull();
            result2.ShouldNotBeNull();
        }