Esempio n. 1
0
        public void CanCreateReturnsFalseForInterface()
        {
            var type = typeof(ITestItem);

            var configuration = Substitute.For <IBuildConfiguration>();
            var typeResolver  = Substitute.For <ITypeResolver>();
            var buildChain    = Substitute.For <IBuildChain>();

            configuration.TypeResolver.Returns(typeResolver);
            typeResolver.GetBuildType(configuration, type).Returns(type);

            var sut = new FactoryTypeCreator(CacheLevel.PerInstance);

            var actual = sut.CanCreate(configuration, buildChain, type);

            actual.Should().BeFalse();
        }
Esempio n. 2
0
        public void CanCreateReturnsFalseWhenNoPublicConstructorFoundAndStaticMethodContainsTypeParameter()
        {
            var             type            = typeof(NotFactoryItem);
            ConstructorInfo?constructorInfo = null;

            var configuration       = Substitute.For <IBuildConfiguration>();
            var typeResolver        = Substitute.For <ITypeResolver>();
            var constructorResolver = Substitute.For <IConstructorResolver>();
            var buildChain          = Substitute.For <IBuildChain>();

            configuration.TypeResolver.Returns(typeResolver);
            configuration.ConstructorResolver.Returns(constructorResolver);
            typeResolver.GetBuildType(configuration, type).Returns(type);
            constructorResolver.Resolve(type, Arg.Any <object?[]?>()).Returns(constructorInfo);

            var sut = new FactoryTypeCreator(CacheLevel.PerInstance);

            var actual = sut.CanCreate(configuration, buildChain, type);

            actual.Should().BeFalse();
        }
Esempio n. 3
0
        public void CanCreateReturnsFalseWhenDefaultConstructorFound()
        {
            var type            = typeof(TestItem);
            var constructorInfo = type.GetConstructors().First();

            var configuration       = Substitute.For <IBuildConfiguration>();
            var typeResolver        = Substitute.For <ITypeResolver>();
            var constructorResolver = Substitute.For <IConstructorResolver>();
            var buildChain          = Substitute.For <IBuildChain>();

            configuration.TypeResolver.Returns(typeResolver);
            configuration.ConstructorResolver.Returns(constructorResolver);
            typeResolver.GetBuildType(configuration, type).Returns(type);
            constructorResolver.Resolve(type, Arg.Any <object?[]?>()).Returns(constructorInfo);

            var sut = new FactoryTypeCreator(CacheLevel.PerInstance);

            var actual = sut.CanCreate(configuration, buildChain, type);

            actual.Should().BeFalse();
        }
Esempio n. 4
0
        public void CanCreateReturnsTrueWhenNoPublicConstructorAndStaticFactoryMethodExistsWithParameters()
        {
            var             type            = typeof(FactoryWithValue);
            ConstructorInfo?constructorInfo = null;

            var configuration       = Substitute.For <IBuildConfiguration>();
            var typeResolver        = Substitute.For <ITypeResolver>();
            var constructorResolver = Substitute.For <IConstructorResolver>();
            var buildChain          = Substitute.For <IBuildChain>();

            configuration.TypeResolver.Returns(typeResolver);
            configuration.ConstructorResolver.Returns(constructorResolver);
            typeResolver.GetBuildType(configuration, type).Returns(type);
            constructorResolver.Resolve(type, Arg.Any <object?[]?>()).Returns(constructorInfo);

            var sut = new FactoryTypeCreator(CacheLevel.PerInstance);

            var actual = sut.CanCreate(configuration, buildChain, type);

            actual.Should().BeTrue();
        }