示例#1
0
        public void CreateDependencyTest()
        {
            DependencyProvider provider;
            DependenciesConfig config = new DependenciesConfig();

            config.Register <IExample, ExampleClass1>(false);
            config.Register <IExample, ExampleClass2>(true);
            provider = new DependencyProvider(config);
            IExample actual = provider.Resolve <IExample>();

            Assert.IsNotNull(actual);
        }
示例#2
0
        public void OpenGenericTypeTest()
        {
            DependencyProvider provider;
            DependenciesConfig config = new DependenciesConfig();

            config.Register <IRepository, MyRepository>(false);
            config.Register(typeof(ServiceImpl <>), typeof(ServiceImpl <>), false);
            provider = new DependencyProvider(config);
            ServiceImpl <IRepository> actual = provider.Resolve <ServiceImpl <IRepository> >();

            Assert.IsNotNull(actual);
            Assert.AreEqual(111, actual.GetNum());
        }
示例#3
0
        public void GetSomeImplementationsTest()
        {
            DependencyProvider provider;
            DependenciesConfig config = new DependenciesConfig();

            config.Register <IExample, ExampleClass1>(true);
            config.Register <IExample, ExampleClass2>(false);
            provider = new DependencyProvider(config);
            IEnumerable <IExample> actual = provider.Resolve <IEnumerable <IExample> >();

            Assert.IsNotNull(actual);
            Assert.AreEqual(2, ((IList)actual).Count);
        }
示例#4
0
        public void CycleDependencyTest()
        {
            DependencyProvider provider;
            DependenciesConfig config = new DependenciesConfig();

            config.Register <ExampleClass1, ExampleClass1>(false);
            config.Register <ExampleClass2, ExampleClass2>(true);
            config.Register <ExampleClass3, ExampleClass3>(true);

            provider = new DependencyProvider(config);
            ExampleClass1 actual = provider.Resolve <ExampleClass1>();

            Assert.IsNotNull(actual);
            Assert.AreEqual(null, actual.example.example.example);
        }
示例#5
0
        public void Configuration(IAppBuilder app)
        {
            var container = DependenciesConfig.Register(System.Web.Http.GlobalConfiguration.Configuration);

            //global
            AreaRegistration.RegisterAllAreas();
            System.Web.Http.GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
示例#6
0
        public void SelfRegistrationTest()
        {
            DependencyProvider provider;
            DependenciesConfig config = new DependenciesConfig();

            config.Register <ExampleClass1, ExampleClass1>(true);
            provider = new DependencyProvider(config);
            ExampleClass1 actual = provider.Resolve <ExampleClass1>();

            Assert.IsNotNull(actual);
        }
示例#7
0
        public void InstancePerDependencyTest()
        {
            DependencyProvider provider;
            DependenciesConfig config = new DependenciesConfig();

            config.Register <IExample, ExampleClass1>(false);
            provider = new DependencyProvider(config);
            IExample expected = provider.Resolve <IExample>();
            IExample actual   = provider.Resolve <IExample>();

            Assert.AreNotEqual(expected, actual);
        }
示例#8
0
        public void SingletonTest()
        {
            DependencyProvider provider;
            DependenciesConfig config = new DependenciesConfig();

            config.Register <IExample, ExampleClass1>(true);
            provider = new DependencyProvider(config);
            IExample expected = provider.Resolve <IExample>();
            IExample actual   = provider.Resolve <IExample>();

            Assert.AreEqual(expected, actual);
        }
        public void Setup()
        {
            DependenciesConfig config = new DependenciesConfig();

            config.Register <ISimpleDependency, SimpleDependency>();
            config.Register <ISimpleDependency, SimpleWithInnerDependency>();
            config.Register <ISingleton, SingletonDependency>(LifeCycle.Singleton);
            config.Register <ICollectionDependency, CollectionClass1>();
            config.Register <ICollectionDependency, CollectionClass2>();
            config.Register <ICollectionDependency, CollectionClass3>();
            config.Register <IInnerCollection, InnerCollectionClass>();
            config.Register <IConstrained, ConstrainedClass>();
            config.Register <IGenericConstrained <IConstrained>, GenericConstrainedClass <IConstrained> >();
            config.Register <IOpenConstrained, OpenConstrainedClass>();
            config.Register(typeof(IOpenGeneric <>), typeof(OpenGenericConstrainedClass <>));
            config.Register <ISimpleDependency, AnotherSimpleClass>();

            container = new DIContainer(config);
        }