public void ThrowsArgumentNullExceptionForNullInstance()
            {
                var dependencyResolverManager = new DependencyResolverManager();
                var dependencyResolver        = new CatelDependencyResolver(new ServiceLocator());

                ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => dependencyResolverManager.RegisterDependencyResolverForType(null, dependencyResolver));
            }
                public void ThrowsTypeNotRegisteredException()
                {
                    var dependencyResolverManager = new DependencyResolverManager();

                    var resolvedDependencyResolver = dependencyResolverManager.GetDependencyResolverForType(typeof(object));

                    ExceptionTester.CallMethodAndExpectException <TypeNotRegisteredException>(() => resolvedDependencyResolver.Resolve(typeof(IDummy)));
                }
            public void ReturnsDefaultDependencyResolverForNonRegisteredType()
            {
                var dependencyResolverManager = new DependencyResolverManager();

                var resolvedDependencyResolver = dependencyResolverManager.GetDependencyResolverForType(typeof(object));

                Assert.IsTrue(ReferenceEquals(dependencyResolverManager.DefaultDependencyResolver, resolvedDependencyResolver));
            }
            public void ReturnsDefaultDependencyResolverForNonRegisteredInstance()
            {
                var dependencyResolverManager = new DependencyResolverManager();
                var myObject = new object();

                var resolvedDependencyResolver = dependencyResolverManager.GetDependencyResolverForInstance(myObject);

                Assert.IsTrue(ReferenceEquals(dependencyResolverManager.DefaultDependencyResolver, resolvedDependencyResolver));
            }
            public void ReturnsRegisteredDependencyResolverForRegisteredType()
            {
                var dependencyResolverManager = new DependencyResolverManager();
                var dependencyResolver        = new CatelDependencyResolver(new ServiceLocator());

                dependencyResolverManager.RegisterDependencyResolverForType(typeof(object), dependencyResolver);

                var resolvedDependencyResolver = dependencyResolverManager.GetDependencyResolverForType(typeof(object));

                Assert.IsTrue(ReferenceEquals(dependencyResolver, resolvedDependencyResolver));
            }
            public void ReturnsRegisteredDependencyResolverForRegisteredInstance()
            {
                var dependencyResolverManager = new DependencyResolverManager();
                var dependencyResolver        = new CatelDependencyResolver(new ServiceLocator());
                var myObject = new object();

                dependencyResolverManager.RegisterDependencyResolverForInstance(myObject, dependencyResolver);

                var resolvedDependencyResolver = dependencyResolverManager.GetDependencyResolverForInstance(myObject);

                Assert.IsTrue(ReferenceEquals(dependencyResolver, resolvedDependencyResolver));
            }
            public void ThrowsArgumentNullExceptionForNullInstance()
            {
                var dependencyResolverManager = new DependencyResolverManager();

                ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => dependencyResolverManager.GetDependencyResolverForInstance(null));
            }
            public void ThrowsArgumentNullExceptionForNullDependencyResolver()
            {
                var dependencyResolverManager = new DependencyResolverManager();

                ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => dependencyResolverManager.RegisterDependencyResolverForType(typeof(object), null));
            }