Exemplo n.º 1
0
        public void AutoBind_Binds_Correctly_For_Interfaces_With_Multiple_Implementors_When_One_Implementor_Is_Marked_As_Default()
        {
            ComponentContainer container = new ComponentContainer();
            container.AutoBind(Assembly.GetExecutingAssembly());

            Assert.IsTrue(container.HasBinding<IBaz>());
            Assert.IsInstanceOf(typeof(Baz1), container.Resolve<IBaz>());
        }
Exemplo n.º 2
0
        public void AutoBind_Binds_Correctly_For_Interfaces_With_One_Implementor()
        {
            ComponentContainer container = new ComponentContainer();
            container.AutoBind(Assembly.GetExecutingAssembly());

            Assert.IsTrue(container.HasBinding<IHasOneImplementor>());
            Assert.IsInstanceOf(typeof(HasOneImplementor), container.Resolve<IHasOneImplementor>());
        }
Exemplo n.º 3
0
        public void After_AutoBind_With_BindType_Singleton_IHasOneImplementor_Resolves_As_Singleton()
        {
            ComponentContainer container = new ComponentContainer();
            container.AutoBind(Assembly.GetExecutingAssembly(), new AutoBindStrategy()
            {
                BindType = ComponentBindType.Singleton
            });

            var obj1 = container.Resolve<IHasOneImplementor>();
            var obj2 = container.Resolve<IHasOneImplementor>();

            Assert.AreSame(obj1, obj2);
        }
Exemplo n.º 4
0
        public void AutoBind_Finds_Interfaces_With_No_Implementors()
        {
            bool check = false;

            ComponentContainer container = new ComponentContainer();
            container.AutoBind(Assembly.GetExecutingAssembly(), new TestAutoBindingStrategy((x, interfaceType, componentTypes) =>
            {
                if (interfaceType == typeof(INotImplemented))
                {
                    check = true;
                }
            }));

            Assert.IsTrue(check);
        }
Exemplo n.º 5
0
 public void AutoBind_Finds_All_Implementors()
 {
     ComponentContainer container = new ComponentContainer();
     container.AutoBind(Assembly.GetExecutingAssembly(), new TestAutoBindingStrategy((x, interfaceType, componentTypes) =>
     {
         if (interfaceType == typeof(IFoo))
         {
             Assert.Greater(componentTypes.Count, 1);
         }
     }));
 }
Exemplo n.º 6
0
 public void Multiple_Calls_To_AutoBind_Using_Default_AutoBindStrategy_Does_Not_Throw_Exception()
 {
     ComponentContainer container = new ComponentContainer();
     container.AutoBind(Assembly.GetExecutingAssembly());
     container.AutoBind(Assembly.GetExecutingAssembly());
 }
Exemplo n.º 7
0
        public void Components_Can_Be_Resolved_When_Using_Custom_DefaultComponentAttribute()
        {
            ComponentContainer container = new ComponentContainer();
            container.AutoBind(Assembly.GetExecutingAssembly(), new AutoBindStrategy()
            {
                DefaultComponentAttributeType = typeof(CustomDefaultComponentAttribute),
            });

            IBar bar = container.Resolve<IBar>();
            Assert.IsInstanceOf<BarWithCustomDefaultComponentAttribte>(bar);
        }
Exemplo n.º 8
0
 public void AutoBind_With_ThrowOnUnresolved_Throws_Exception_When_There_Are_No_Implementors()
 {
     ComponentContainer container = new ComponentContainer();
     container.AutoBind(Assembly.GetExecutingAssembly(), new AutoBindStrategy()
     {
         ThrowOnUnresolved = true,
         InterfaceTypeFilter = x => x.Name == "INotImplemented"
     });
 }
Exemplo n.º 9
0
 public void AutoBind_With_ThrowOnUnresolved_Throws_Exception_When_There_Are_Multiple_Implementors_And_One_Is_Not_Marked_As_Default()
 {
     ComponentContainer container = new ComponentContainer();
     container.AutoBind(Assembly.GetExecutingAssembly(), new AutoBindStrategy()
     {
         ThrowOnUnresolved = true,
         InterfaceTypeFilter = x => x.Name == "IBar",
         ComponentTypesFilter = x => !x.Name.EndsWith("3")
     });
 }
Exemplo n.º 10
0
        public void AutoBind_With_InterfaceTypeFilter_Filters_Properly()
        {
            ComponentContainer container = new ComponentContainer();
            container.AutoBind(Assembly.GetExecutingAssembly(), new AutoBindStrategy()
            {
                InterfaceTypeFilter = x => x.Name == "IBar"
            });

            Assert.IsTrue(container.HasBinding<IBar>());
            Assert.IsFalse(container.HasBinding<IFoo>());
        }
Exemplo n.º 11
0
        public void AutoBind_With_ComponentTypesFilter_Filters_Properly()
        {
            ComponentContainer container = new ComponentContainer();
            container.AutoBind(Assembly.GetExecutingAssembly(), new AutoBindStrategy()
            {
                ComponentTypesFilter = x => x.Name.EndsWith("2")
            });

            Assert.IsInstanceOf(typeof(Baz2), container.Resolve<IBaz>());
        }