Beispiel #1
0
        public void ResolverWithElementsReturnsLiteralElements()
        {
            IUnityContainer container = new UnityContainer();
            object          o1        = new object();
            object          o2        = new object();
            object          o3        = new object();

            container
            .RegisterInstance <object>("o1", o1)
            .RegisterInstance <object>("o2", o2);

            ResolvedArrayWithElementsResolverPolicy resolver
                = new ResolvedArrayWithElementsResolverPolicy(
                      typeof(object),
                      new LiteralValueDependencyResolverPolicy(o1),
                      new LiteralValueDependencyResolverPolicy(o3));

            container.AddExtension(new InjectedObjectConfigurationExtension(resolver));

            object[] results = (object[])container.Resolve <InjectedObject>().injectedValue;

            Assert.IsNotNull(results);
            Assert.AreEqual(2, results.Length);
            Assert.AreSame(o1, results[0]);
            Assert.AreSame(o3, results[1]);
        }
Beispiel #2
0
        public void ResolverWithElementsReturnsResolvedElementsForBaseClass()
        {
            IUnityContainer container = new UnityContainer();
            ILogger         o1        = new MockLogger();
            ILogger         o2        = new SpecialLogger();

            container
            .RegisterInstance <ILogger>("o1", o1)
            .RegisterInstance <ILogger>("o2", o2);

            ResolvedArrayWithElementsResolverPolicy resolver
                = new ResolvedArrayWithElementsResolverPolicy(
                      typeof(ILogger),
                      new NamedTypeDependencyResolverPolicy(typeof(ILogger), "o1"),
                      new NamedTypeDependencyResolverPolicy(typeof(ILogger), "o2"));

            container.AddExtension(new InjectedObjectConfigurationExtension(resolver));

            ILogger[] results = (ILogger[])container.Resolve <InjectedObject>().injectedValue;

            Assert.IsNotNull(results);
            Assert.AreEqual(2, results.Length);
            Assert.AreSame(o1, results[0]);
            Assert.AreSame(o2, results[1]);
        }
Beispiel #3
0
        public void ResolverWithElementsReturnsEmptyArrayIfThereAreNoElements()
        {
            IUnityContainer container = new UnityContainer();
            object          o1        = new object();
            object          o2        = new object();
            object          o3        = new object();

            container
            .RegisterInstance <object>("o1", o1)
            .RegisterInstance <object>("o2", o2);

            BuilderContext context = GetContext(container, typeof(object));

            ResolvedArrayWithElementsResolverPolicy resolver
                = new ResolvedArrayWithElementsResolverPolicy(typeof(object));

            object[] results = (object[])resolver.Resolve(context);

            Assert.IsNotNull(results);
            Assert.AreEqual(0, results.Length);
        }
        public void ResolverWithElementsReturnsEmptyArrayIfThereAreNoElements()
        {
            IUnityContainer container = new UnityContainer();
            object o1 = new object();
            object o2 = new object();
            object o3 = new object();

            container
                .RegisterInstance<object>("o1", o1)
                .RegisterInstance<object>("o2", o2);

            BuilderContext context = GetContext(container, new NamedTypeBuildKey<object>());

            ResolvedArrayWithElementsResolverPolicy resolver
                = new ResolvedArrayWithElementsResolverPolicy(typeof(object));

            object[] results = (object[])resolver.Resolve(context);

            Assert.IsNotNull(results);
            Assert.AreEqual(0, results.Length);
        }
        public void ResolverWithElementsReturnsResolvedElementsForBaseClass()
        {
            IUnityContainer container = new UnityContainer();
            ILogger o1 = new MockLogger();
            ILogger o2 = new SpecialLogger();

            container
                .RegisterInstance<ILogger>("o1", o1)
                .RegisterInstance<ILogger>("o2", o2);

            ResolvedArrayWithElementsResolverPolicy resolver
                = new ResolvedArrayWithElementsResolverPolicy(
                    typeof(ILogger),
                    new NamedTypeDependencyResolverPolicy(typeof(ILogger), "o1"),
                    new NamedTypeDependencyResolverPolicy(typeof(ILogger), "o2"));
            container.AddExtension(new InjectedObjectConfigurationExtension(resolver));

            ILogger[] results = (ILogger[])container.Resolve<InjectedObject>().injectedValue;

            Assert.IsNotNull(results);
            Assert.AreEqual(2, results.Length);
            Assert.AreSame(o1, results[0]);
            Assert.AreSame(o2, results[1]);
        }
        public void ResolverWithElementsReturnsLiteralElements()
        {
            IUnityContainer container = new UnityContainer();
            object o1 = new object();
            object o2 = new object();
            object o3 = new object();

            container
                .RegisterInstance<object>("o1", o1)
                .RegisterInstance<object>("o2", o2);

            ResolvedArrayWithElementsResolverPolicy resolver
                = new ResolvedArrayWithElementsResolverPolicy(
                    typeof(object),
                    new LiteralValueDependencyResolverPolicy(o1),
                    new LiteralValueDependencyResolverPolicy(o3));
            container.AddExtension(new InjectedObjectConfigurationExtension(resolver));

            object[] results = (object[])container.Resolve<InjectedObject>().injectedValue;

            Assert.IsNotNull(results);
            Assert.AreEqual(2, results.Length);
            Assert.AreSame(o1, results[0]);
            Assert.AreSame(o3, results[1]);
        }