Exemplo n.º 1
0
        public void For_GenericTypeOneParameter_ReturnsTrueAndTypeNameWithGenericArgumentFromInnerInstance(
            [Frozen] IGetTypeNameString innerGetTypeNameString,
            RecursiveGenericTypeGetTypeNameString sut,
            string genericArgumentName)
        {
            // Arrange
            var @out = Arg.Any <string>();

            innerGetTypeNameString.For(typeof(AutoNSubstituteDataAttribute), out @out).Returns(x =>
            {
                x[1] = genericArgumentName;
                return(true);
            });

            var type = typeof(IList <AutoNSubstituteDataAttribute>);

            var expectedTypeName = "IList<" + genericArgumentName + ">";

            // Act
            string resultTypeName;
            var    result = sut.For(type, out resultTypeName);

            // Assert
            Assert.True(result);
            Assert.Equal(expectedTypeName, resultTypeName);
        }
Exemplo n.º 2
0
        public RecursiveGenericTypeGetTypeNameString(IGetTypeNameString innerGetTypeNameString)
        {
            if (innerGetTypeNameString == null)
            {
                throw new ArgumentNullException("innerGetTypeNameString");
            }

            this._innerGetTypeNameString = innerGetTypeNameString;
        }
Exemplo n.º 3
0
        public DefaultGetMemberTypesString(IGetTypeNameString getTypeNameString)
        {
            if (getTypeNameString == null)
            {
                throw new ArgumentNullException("getTypeNameString");
            }

            this._getTypeNameString = getTypeNameString;
        }
Exemplo n.º 4
0
        public void For_GenericTypeThreeParameters_ReturnsTrueAndTypeNameWithGenericArgumentsFromInnerInstance(
            [Frozen] IGetTypeNameString innerGetTypeNameString,
            RecursiveGenericTypeGetTypeNameString sut,
            IFixture fixture)
        {
            // Arrange
            var genericArgumentName1 = fixture.Create <string>();
            var genericArgumentName2 = fixture.Create <string>();
            var genericArgumentName3 = fixture.Create <string>();

            var @out = Arg.Any <string>();

            innerGetTypeNameString.For(typeof(AutoNSubstituteDataAttribute), out @out).Returns(x =>
            {
                x[1] = genericArgumentName1;
                return(true);
            });

            @out = Arg.Any <string>();
            innerGetTypeNameString.For(typeof(Int64), out @out).Returns(x =>
            {
                x[1] = genericArgumentName2;
                return(true);
            });

            @out = Arg.Any <string>();
            innerGetTypeNameString.For(typeof(InsufficientMemoryException), out @out).Returns(x =>
            {
                x[1] = genericArgumentName3;
                return(true);
            });

            var type = typeof(Tuple <AutoNSubstituteDataAttribute, Int64, InsufficientMemoryException>);

            var expectedTypeName = "Tuple<" + genericArgumentName1 + ", " + genericArgumentName2 + ", " + genericArgumentName3 + ">";

            // Act
            string resultTypeName;
            var    result = sut.For(type, out resultTypeName);

            // Assert
            Assert.True(result);
            Assert.Equal(expectedTypeName, resultTypeName);
        }
Exemplo n.º 5
0
        public void For_DefaultFormatString_ReturnsCombinationOfObjectTypeNameAndReferenceTypeName(
            [Frozen] IGetTypeNameString getTypeNameString, string objectTypeName, string referenceTypeName, IFixture fixture)
        {
            // Arrange
            fixture.Customize(new NoAutoPropertiesCustomization(typeof(DefaultGetMemberTypesString)));

            var objectType    = typeof(AutoNSubstituteDataAttribute);
            var referenceType = typeof(CustomizationNode);

            var graphNode = new GraphNode()
            {
                ReferenceType = referenceType,
                ObjectType    = objectType
            };

            var @out = Arg.Any <string>();

            getTypeNameString.For(objectType, out @out).Returns((x =>
            {
                x[1] = objectTypeName;
                return(true);
            }));
            @out = Arg.Any <string>();
            getTypeNameString.For(referenceType, out @out).Returns((x =>
            {
                x[1] = referenceTypeName;
                return(true);
            }));

            var expectedResult = objectTypeName + " : " + referenceTypeName;

            var sut = fixture.Create <DefaultGetMemberTypesString>();

            // Act
            var result = sut.For(graphNode);

            // Assert
            Assert.Equal(expectedResult, result);
        }
Exemplo n.º 6
0
        public void For_FirstInnerInstanceHandles_ReturnsTrueAndTypeName(
            List <IGetTypeNameString> innerInstances,
            IGetTypeNameString firstInnerInstance,
            string expectedTypeName,
            Type type,
            IFixture fixture)
        {
            // Arrange
            var @out = Arg.Any <string>();

            firstInnerInstance.For(type, out @out).Returns(x =>
            {
                x[1] = expectedTypeName;
                return(true);
            });

            foreach (var innerInstance in innerInstances)
            {
                @out = Arg.Any <string>();
                innerInstance.For(type, out @out).ReturnsForAnyArgs(x => { throw new Exception(); });
            }

            innerInstances.Insert(0, firstInnerInstance);

            fixture.Inject <IGetTypeNameString[]>(innerInstances.ToArray());

            var sut = fixture.Create <CompositeGetTypeNameString>();

            var expectedResult = true;

            // Act
            string resultTypeName;
            var    result = sut.For(type, out resultTypeName);

            // Assert
            Assert.Equal(expectedTypeName, resultTypeName);
            Assert.Equal(expectedResult, result);
        }
        public void For_FirstInnerInstanceHandles_ReturnsTrueAndTypeName(
            List<IGetTypeNameString> innerInstances,
            IGetTypeNameString firstInnerInstance,
            string expectedTypeName,
            Type type,
            IFixture fixture)
        {
            // Arrange
            var @out = Arg.Any<string>();

            firstInnerInstance.For(type, out @out).Returns(x =>
                                                           {
                                                               x[1] = expectedTypeName;
                                                               return true;
                                                           });

            foreach (var innerInstance in innerInstances)
            {
                @out = Arg.Any<string>();
                innerInstance.For(type, out  @out).ReturnsForAnyArgs(x => { throw new Exception(); });
            }

            innerInstances.Insert(0, firstInnerInstance);

            fixture.Inject<IGetTypeNameString[]>(innerInstances.ToArray());

            var sut = fixture.Create<CompositeGetTypeNameString>();

            var expectedResult = true;

            // Act
            string resultTypeName;
            var result = sut.For(type, out resultTypeName);

            // Assert
            Assert.Equal(expectedTypeName, resultTypeName);
            Assert.Equal(expectedResult, result);
        }
Exemplo n.º 8
0
        public void For_ReturnsResultsFromInnerInstance(bool expectedResult,
                                                        [Frozen] IGetTypeNameString innerInstance,
                                                        LazyGetTypeNameString sut,
                                                        Type type,
                                                        string expectedTypeName)
        {
            // Arrange
            var @out = Arg.Any <string>();

            innerInstance.For(type, out @out).Returns(x =>
            {
                x[1] = expectedTypeName;
                return(expectedResult);
            });

            // Act
            string resultTypeName;
            var    result = sut.For(type, out resultTypeName);

            // Assert
            Assert.Equal(expectedResult, result);
            Assert.Equal(expectedTypeName, resultTypeName);
        }
Exemplo n.º 9
0
        public DefaultGetMemberTypesString(IGetTypeNameString getTypeNameString)
        {
            if (getTypeNameString == null) throw new ArgumentNullException("getTypeNameString");

            this._getTypeNameString = getTypeNameString;
        }
Exemplo n.º 10
0
        public RecursiveGenericTypeGetTypeNameString(IGetTypeNameString innerGetTypeNameString)
        {
            if (innerGetTypeNameString == null) throw new ArgumentNullException("innerGetTypeNameString");

            this._innerGetTypeNameString = innerGetTypeNameString;
        }