示例#1
0
        public void ResolveDependencies_PromisesReturnsNull_ThrowsArgumentNullException()
        {
            var accessor = new SubAccessor();

            var contract = new CompositionContract(typeof(int));

            AssertExtensions.Throws <ArgumentNullException>("source", () => accessor.ResolveDependencies("Site", contract, true));
            Assert.Same(contract, accessor.Contract);
        }
示例#2
0
        public void ResolveDependencies_PromisesReturnsNullObjectInArray_ThrowsArgumentNullException()
        {
            var accessor = new SubAccessor {
                Result = new ExportDescriptorPromise[] { null }
            };

            var contract = new CompositionContract(typeof(int));

            AssertExtensions.Throws <ArgumentNullException>("target", () => accessor.ResolveDependencies("Site", contract, true));
            Assert.Same(contract, accessor.Contract);
        }
示例#3
0
        public void ResolveDependencies_PromisesReturnsEmpty_ReturnsEmpty()
        {
            var accessor = new SubAccessor {
                Result = new ExportDescriptorPromise[0]
            };

            var contract = new CompositionContract(typeof(int));

            Assert.Empty(accessor.ResolveDependencies("Site", contract, true));
            Assert.Same(contract, accessor.Contract);
        }
示例#4
0
        public void ResolveRequiredDependency_PromisesReturnsEmpty_ReturnsMissing()
        {
            var accessor = new SubAccessor {
                Result = new ExportDescriptorPromise[0]
            };

            var contract = new CompositionContract(typeof(int));
            CompositionDependency dependency = accessor.ResolveRequiredDependency("Site", contract, true);

            Assert.Same(contract, accessor.Contract);

            Assert.Same(contract, dependency.Contract);
            Assert.Equal("Site", dependency.Site);
            Assert.False(dependency.IsPrerequisite);
            Assert.Null(dependency.Target);
        }
示例#5
0
        public void ResolveRequiredDependency_PromisesReturnsOneTarget_ReturnsStatisfied()
        {
            var descriptor = ExportDescriptor.Create(Activator, new Dictionary <string, object>());
            var target     = new ExportDescriptorPromise(new CompositionContract(typeof(int)), "Origin", false, () => Enumerable.Empty <CompositionDependency>(), dependencies =>
            {
                return(ExportDescriptor.Create(Activator, new Dictionary <string, object>()));
            });
            var accessor = new SubAccessor {
                Result = new ExportDescriptorPromise[] { target }
            };

            var contract = new CompositionContract(typeof(int));
            CompositionDependency dependency = accessor.ResolveRequiredDependency("Site", contract, true);

            Assert.Same(contract, accessor.Contract);

            Assert.Same(contract, dependency.Contract);
            Assert.Equal("Site", dependency.Site);
            Assert.True(dependency.IsPrerequisite);
            Assert.Same(target, dependency.Target);
        }