public void ParameterTest(string attributeName, string[] attributeParameters,
                                  [Frozen] Mock <IAttributeArgumentDefinitionFactory> attributeParameterDefinitionFactoryMock,
                                  AttributeDefinitionFactory factory)
        {
            Expression <Func <IAttributeArgumentDefinitionFactory, AttributeArgumentDefinition> >
            attributeParameterExpression = f =>
                                           f.CreateAttributeParameterFromSyntax(It.IsAny <AttributeArgumentSyntax>());

            attributeParameterDefinitionFactoryMock.Setup(attributeParameterExpression).Returns(() => null)
            .Verifiable();

            var attribute = SyntaxFactory.Attribute(SyntaxFactory.IdentifierName(attributeName));

            foreach (var attributeParameter in attributeParameters)
            {
                attribute = attribute.AddArgumentListArguments(
                    SyntaxFactory.AttributeArgument(SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression,
                                                                                    SyntaxFactory.Token(SyntaxFactory.TriviaList(), SyntaxKind.StringLiteralToken,
                                                                                                        attributeParameter, attributeParameter, SyntaxFactory.TriviaList()))));
            }

            var result = factory.CreateAttributeFromSyntax(attribute);


            Assert.Equal(attributeName, result.Name);
            Assert.Equal(attributeParameters.Length, result.Parameters.Length);
            attributeParameterDefinitionFactoryMock.Verify(attributeParameterExpression,
                                                           Times.Exactly(attributeParameters.Length));
        }
        public void AttributeWithoutParameters(string attributeName, AttributeDefinitionFactory factory)
        {
            var attribute = SyntaxFactory.Attribute(SyntaxFactory.IdentifierName(attributeName));

            var result = factory.CreateAttributeFromSyntax(attribute);


            Assert.Equal(attributeName, result.Name);
            Assert.Empty(result.Parameters);
        }
 public AttributeDefinitionFactoryTests()
 {
     this.factory = new AttributeDefinitionFactory();
 }