コード例 #1
0
        public void ShouldResolveImplicitelyRegisteredType()
        {
            // Arrange
            var services = new ServiceConnect.Container.Default.Container();

            services.RegisterForAll(typeof(MyImplementation));

            // Act
            var result = services.Resolve <IMyInterface <string> >();

            // Assert
            Assert.NotNull(result);
            Assert.Equal("MyImplementation", result.GetType().Name);
        }
コード例 #2
0
        public void ShouldResolveRegisteredTypeWithCtorParams()
        {
            // Arrange
            var services = new ServiceConnect.Container.Default.Container();

            services.RegisterFor(typeof(MyImplementationWithCtor), typeof(IMyInterface <string>));

            // Act
            var result = services.Resolve(typeof(IMyInterface <string>), new Dictionary <string, object> {
                { "name", "testName" }
            });

            // Assert
            Assert.NotNull(result);
            Assert.Equal("testName", ((IMyInterface <string>)result).Name);
        }
コード例 #3
0
        public void ShouldResolveRegisteredInstances()
        {
            // Arrange
            IMyInterface <string> myInstance = new MyGenericImplementation <string>();

            myInstance.Name = "test";
            var services = new ServiceConnect.Container.Default.Container();

            services.RegisterFor(myInstance, typeof(IMyInterface <string>));

            // Act
            var result = services.Resolve(typeof(IMyInterface <string>));

            // Assert
            Assert.NotNull(result);
            Assert.Equal("test", ((IMyInterface <string>)result).Name);
        }
コード例 #4
0
        public void ShouldResolveImplicitelyRegisteredGenericTypes()
        {
            // Arrange
            var services = new ServiceConnect.Container.Default.Container();

            services.RegisterForAll(typeof(MyGenericImplementation <>));

            // Act
            var result1 = services.Resolve <IMyInterface <int> >();
            var result2 = services.Resolve <IMyInterface <string> >();

            // Assert
            Assert.NotNull(result1);
            Assert.True(result1.GetType().GetTypeInfo().IsGenericType);
            Assert.Equal(1, result1.GetType().GetGenericArguments().Count());
            Assert.Equal("Int32", result1.GetType().GetGenericArguments()[0].Name);

            Assert.NotNull(result2);
            Assert.True(result2.GetType().GetTypeInfo().IsGenericType);
            Assert.Equal(1, result2.GetType().GetTypeInfo().GetGenericArguments().Count());
            Assert.Equal("String", result2.GetType().GetGenericArguments()[0].Name);
        }