public void Should_not_return_a_binder_that_returns_false_for_canbind() { var fakeBinder = A.Fake<IModelBinder>(); A.CallTo(() => fakeBinder.CanBind(A<Type>.Ignored)).Returns(false); var locator = new DefaultModelBinderLocator(new IModelBinder[] { fakeBinder }, this.defaultBinder); var result = locator.GetBinderForType(typeof(Model), A<NancyContext>.Ignored); result.ShouldNotBeSameAs(fakeBinder); }
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_return_default_binder_if_no_specific_binder_exists() { var fakeBinder = A.Fake<IModelBinder>(); A.CallTo(() => fakeBinder.CanBind(A<Type>.Ignored)).Returns(false); var locator = new DefaultModelBinderLocator(new IModelBinder[] { fakeBinder }, this.defaultBinder); var result = locator.GetBinderForType(typeof(Model), A<NancyContext>.Ignored); result.ShouldBeSameAs(this.defaultBinder); }
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(); }