Example #1
0
        private static MethodArgumentDescriptor[] GetArgumentDescriptors(List <ParameterSyntax> argumentList, SemanticModel semanticModel, MockFramework mockFramework)
        {
            MethodArgumentDescriptor[] argumentDescriptors = new MethodArgumentDescriptor[argumentList.Count()];

            for (int i = 0; i < argumentDescriptors.Count(); i++)
            {
                string argumentName = argumentList[i].Identifier.Text;

                ParameterModifier modifier = GetArgumentModifier(argumentList[i]);

                var namedTypeSymbol = InjectableType.TryCreateInjectableTypeFromParameterNode(argumentList[i], semanticModel, mockFramework);

                if (namedTypeSymbol != null)
                {
                    argumentDescriptors[i] = new MethodArgumentDescriptor(namedTypeSymbol, argumentName, modifier);
                    continue;
                }

                var argumentType = argumentList[i].Type;

                string typeName = argumentType.ToString();

                argumentDescriptors[i] = new MethodArgumentDescriptor(new TypeDescriptor(typeName, null), argumentName, modifier);
            }

            return(argumentDescriptors);
        }
        private static MethodArgumentDescriptor[] GetArgumentDescriptors(List <ParameterSyntax> argumentList, SemanticModel semanticModel, MockFramework mockFramework)
        {
            MethodArgumentDescriptor[] argumentDescriptors = new MethodArgumentDescriptor[argumentList.Count()];

            for (int i = 0; i < argumentDescriptors.Count(); i++)
            {
                string argumentName = argumentList[i].Identifier.Text;

                ParameterModifier modifier = GetArgumentModifier(argumentList[i]);

                SyntaxNode node = GetMainNodeFromParameterEntry(argumentList[i]);

                SymbolInfo     symbolInfo = semanticModel.GetSymbolInfo(node);
                TypeDescriptor typeDescriptor;

                typeDescriptor = new TypeDescriptor(symbolInfo, argumentList[i].Type, node.Kind());

                argumentDescriptors[i] = new MethodArgumentDescriptor(typeDescriptor, argumentName, modifier);
            }

            return(argumentDescriptors);
        }