public void ResolverShouldUnregisterBehavior() { const string name = "name"; var source = new BindingBehaviorMock(); var resolver = CreateBindingResourceResolver(); resolver.AddBehavior(name, (context, list) => source, true); resolver.ResolveBehavior(name, EmptyContext, Empty.Array <string>(), true).ShouldEqual(source); resolver.RemoveBehavior(name).ShouldBeTrue(); resolver.ResolveBehavior(name, EmptyContext, Empty.Array <string>(), false).ShouldBeNull(); }
public void ResolverShouldRegisterAndResolveBehavior() { const string name = "name"; var source = new BindingBehaviorMock(); var resolver = CreateBindingResourceResolver(); resolver.ResolveBehavior(name, EmptyContext, Empty.Array <string>(), false).ShouldBeNull(); resolver.AddBehavior(name, (context, list) => { context.ShouldEqual(EmptyContext); list.ShouldEqual(Empty.Array <string>()); return(source); }, true); resolver.ResolveBehavior(name, EmptyContext, Empty.Array <string>(), true).ShouldEqual(source); }
public virtual void BindingShouldNotAddSameBehavior() { IBindingPath path = new BindingPath("test"); var bindingManager = new BindingManager(); var target = new BindingSourceAccessorMock { Source = new ObserverMock { GetActualSource = b => new object(), Path = path } }; var source = new BindingSourceAccessorMock(); DataBinding binding = CreateDataBinding(target, source, bindingManager); var first = new BindingBehaviorMock { Id = Guid.Empty, Attach = binding1 => true }; binding.Behaviors.Add(first); ShouldThrow(() => binding.Behaviors.Add(first)); }
public virtual void BindingShouldNotAddBehaviorIfAttachReturnsFalse() { IBindingPath path = new BindingPath("test"); var bindingManager = new BindingManager(); var target = new BindingSourceAccessorMock { Source = new ObserverMock { GetActualSource = b => new object(), Path = path } }; var source = new BindingSourceAccessorMock(); DataBinding binding = CreateDataBinding(target, source, bindingManager); var first = new BindingBehaviorMock { Id = Guid.Empty, Attach = binding1 => false }; binding.Behaviors.Add(first); binding.Behaviors.Count.ShouldEqual(0); binding.Behaviors.Contains(first).ShouldBeFalse(); }
public virtual void BindingShouldThrowExceptionDuplicateIdBehavior() { IBindingPath path = BindingPath.Create("test"); var bindingManager = new BindingManager(); var target = new BindingSourceAccessorMock { Source = new BindingSourceMock { GetSource = b => new object(), Path = path } }; var source = new BindingSourceAccessorMock(); DataBinding binding = CreateDataBinding(target, source, bindingManager); var first = new BindingBehaviorMock { Id = Guid.Empty, Attach = binding1 => true }; var second = new BindingBehaviorMock { Id = Guid.Empty, Attach = binding1 => true }; binding.Behaviors.Add(first); ShouldThrow(() => binding.Behaviors.Add(second)); }