Example #1
0
        public void Should_instantiate_registered_type_with_factory_dependency()
        {
            var container = new MyAwesomeIocContainer();
            var serviceInstance = new ServiceWithoutDependencies();
            container.Register<IServiceWithoutDependencies>(c => serviceInstance);

            var implementation = container.Resolve<IServiceWithoutDependencies>();

            implementation.Should().Be(serviceInstance);
        }
Example #2
0
        public void Should_auto_register()
        {
            var container = new MyAwesomeIocContainer();

            container.RegisterAll<IServiceWithoutDependencies>(type => type.FullName.Contains("Service"));

            container.Resolve<IServiceWithoutDependencies>().Should().BeOfType<ServiceWithoutDependencies>();
            container.Resolve<IServiceWithDependencies>().Should().BeOfType<ServiceWithDependencies>();
            container.Resolve<IServiceWithMultipleDependencies>().Should().BeOfType<ServiceWithMultipleDependencies>();
        }
Example #3
0
        public void Should_instantiate_registered_type_with_dependency()
        {
            var container = new MyAwesomeIocContainer();

            container.Register<IServiceWithoutDependencies, ServiceWithoutDependencies>();
            container.Register<IServiceWithDependencies, ServiceWithDependencies>();

            var implementation = container.Resolve<IServiceWithDependencies>();
            implementation.Should().NotBeNull();
            implementation.Should().BeOfType<ServiceWithDependencies>();

            implementation.SomeDependency.Should().NotBeNull();
            implementation.SomeDependency.Should().BeOfType<ServiceWithoutDependencies>();
        }
Example #4
0
        public void Should_intercept_method_call()
        {
            var container = new MyAwesomeIocContainer();

            var testInterceptor = new TestInterceptor();
            container.InterceptWith(testInterceptor);

            container.Register<IServiceWithoutDependencies, ServiceWithoutDependencies>();

            var service = container.Resolve<IServiceWithoutDependencies>();

            service.DoSomething("bla");

            testInterceptor.HasIntercepted.Should().BeTrue();
        }
Example #5
0
        public void Should_throw_when_resolving_unknown_type()
        {
            var container = new MyAwesomeIocContainer();

            Action action = () => container.Resolve<IServiceWithoutDependencies>();
            action.ShouldThrow<InvalidOperationException>();
        }
Example #6
0
        public void Should_resolve_registered_instance()
        {
            var container = new MyAwesomeIocContainer();

            var serviceInstance = new ServiceWithoutDependencies();

            container.Register<IServiceWithoutDependencies>(serviceInstance);

            var implementation = container.Resolve<IServiceWithoutDependencies>();
            implementation.Should().Be(serviceInstance);
        }