internal static void DiscoverArguments(
            ICollection <ArgumentDescription> arguments,
            MemberInfo member)
        {
            if (arguments == null)
            {
                throw new ArgumentNullException(nameof(arguments));
            }

            var processed = new HashSet <NameString>();

            foreach (ArgumentDescription description in arguments)
            {
                processed.Add(description.Name);
            }

            if (member is MethodInfo method)
            {
                foreach (ParameterInfo parameter in method.GetParameters())
                {
                    string argumentName = parameter.GetGraphQLName();
                    if (IsArgumentType(method, parameter) &&
                        processed.Add(argumentName))
                    {
                        var argumentDescriptor = new ArgumentDescriptor(
                            argumentName, parameter.ParameterType);

                        argumentDescriptor.Description(
                            parameter.GetGraphQLDescription());

                        arguments.Add(argumentDescriptor.CreateDescription());
                    }
                }
            }
        }
        public void SetDescription()
        {
            // arrange
            string expectedDescription = Guid.NewGuid().ToString();
            var    descriptor          = new ArgumentDescriptor(Context, "Type");

            // act
            descriptor.Description(expectedDescription);

            // assert
            Assert.Equal(expectedDescription,
                         descriptor.CreateDefinition().Description);
        }