public void WhenContextInitializerNotNull_ThenInvokesItOnEvaluation()
        {
            var settings = new PropertyBindingSettings { ValueProvider = new ValueProviderBindingSettings { } };
            bool invoked = false;

            settings.Evaluate(this.bindingFactory, this.tracer, c => invoked = true);

            Assert.True(invoked);
        }
        public void WhenValueProviderBindingFails_ThenThrowsInvalidOperationExceptionAndTraces()
        {
            var settings = new PropertyBindingSettings { ValueProvider = new ValueProviderBindingSettings { } };

            Mock.Get(this.binding)
                .Setup(x => x.Evaluate(It.IsAny<IDynamicBindingContext>()))
                .Returns(false);

            Assert.Throws<InvalidOperationException>(() => settings.Evaluate(this.bindingFactory, this.tracer));
            Mock.Get(this.tracer)
                .Verify(x => x.Trace(TraceEventType.Error, It.IsAny<string>(), It.IsAny<object[]>()));
        }
        public void WhenValueProviderExists_ThenEvaluatesItsValue()
        {
            var settings = new PropertyBindingSettings { ValueProvider = new ValueProviderBindingSettings { } };

            Assert.Equal("Foo", settings.Evaluate(this.bindingFactory, this.tracer));
        }
        public void WhenNoValueProviderExists_ThenReturnsBindingValue()
        {
            var settings = new PropertyBindingSettings { Value = "Foo" };

            Assert.Equal("Foo", settings.Evaluate(this.bindingFactory, this.tracer));
        }