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);
        }
Пример #3
0
        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));
        }
Пример #4
0
        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();
        }
Пример #5
0
        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));
        }