public void ShouldBindToNullWhenNoTargetIsResolved()
        {
            var target  = new ResolvedTarget(typeof(string));
            var context = GetCompileContext(target);

            Assert.Null(target.Bind(context));
        }
        public void ShouldUseFallbackWhenContextContainerFails()
        {
            var container = new Container();
            var fallback  = new TestTarget(typeof(string), useFallBack: false, supportsType: true);

            var target  = new ResolvedTarget(typeof(string), fallback);
            var context = GetCompileContext(target, container);

            var result = target.Bind(context);

            Assert.NotNull(result);
            Assert.Same(fallback, result);
        }
        public void ShouldBindToTargetFromContextContainer()
        {
            var container = new Container();

            container.Register(new TestTarget(typeof(string), useFallBack: false, supportsType: true));

            var target  = new ResolvedTarget(typeof(string));
            var context = GetCompileContext(target, container);

            var result = target.Bind(context);

            Assert.NotNull(result);
            Assert.IsType <TestTarget>(result);
        }