public void MapParameter_Finds_Parameter_By_Name_When_Shortcut_Is_Null() { ArgParserProxy proxy = new ArgParserProxy(typeof(Class1)); MethodInfo method = typeof(Class1).GetMethod("SingleParamWithoutShortcut"); Assert.IsNotNull(method); ParameterInfo parameter = proxy.MapParameterPublic("i", method); Assert.IsNotNull(parameter); Assert.AreEqual("i", parameter.Name); }
public void MapParameter_Finds_Parameter_By_ParamAttribute_Shortcut() { ArgParserProxy proxy = new ArgParserProxy(typeof(Class1)); MethodInfo method = typeof(Class1).GetMethod("Foo"); Assert.IsNotNull(method); ParameterInfo parameter = proxy.MapParameterPublic("ii", method); Assert.IsNotNull(parameter); Assert.AreEqual("f", parameter.Name); }
private void ReadParameterToken_Supports(IEnumerable<string> args, Type classType, string methodName, string expectedParameterName, object expectedValue, int valuesRead) { MethodInfo method = classType.GetMethod(methodName); ParameterInfo expectedParameter = method.GetParameters().Single(p => p.Name == expectedParameterName); Assert.IsNotNull(method); Queue<string> queue = new Queue<string>(args); int initQueueSize = queue.Count; ArgParserProxy proxy = new ArgParserProxy(method.DeclaringType); ParserContext context = new ParserContext { ActionMethod = method }; object result = proxy.ReadParameterTokenPublic(queue, context); Assert.IsNotNull(result); Assert.IsInstanceOf<ParameterValueToken>(result); ParameterValueToken token = (ParameterValueToken) result; Assert.AreEqual(expectedParameter, token.Parameter); Assert.AreEqual(expectedValue, token.Value); Assert.AreEqual(initQueueSize - valuesRead, queue.Count); }
public void MapParameter_Throws_InvalidOperationException_On_Parameters_With_Duplicit_Names() { ArgParserProxy proxy = new ArgParserProxy(typeof(Class1)); MethodInfo method = typeof(Class1).GetMethod("DuplicateParams"); Assert.IsNotNull(method); proxy.MapParameterPublic("x", method); }
public void MapParameter_Throws_ArgumentException_When_Parameter_Is_Not_Found() { ArgParserProxy proxy = new ArgParserProxy(typeof(Class1)); MethodInfo method = typeof (Class1).GetMethod("Foo"); Assert.IsNotNull(method); proxy.MapParameterPublic("ff", method); }
public void MapParameter_Is_Case_Sensitive() { ArgParserProxy proxy = new ArgParserProxy(typeof(Class1)); MethodInfo method = typeof(Class1).GetMethod("Foo"); Assert.IsNotNull(method); proxy.MapParameterPublic("Ii", method); }
public void ReadActionMethodToken_Finds_ActionMethod_By_AttributeName() { ArgParserProxy proxy = new ArgParserProxy(typeof(Class1)); ParserContext context = new ParserContext(); Queue<string> queue = new Queue<string>(new[] { "Bar2" }); object result = proxy.ReadActionMethodTokenPublic(queue, context); Assert.IsNotNull(result); Assert.IsInstanceOf<ActionMethodToken>(result); ActionMethodToken token = (ActionMethodToken) result; Assert.AreEqual(typeof(Class1).GetMethod("Bar1"), token.Method); }
public void ReadActionMethodToken_Throws_ArgumentException_When_Queue_Is_Empty() { ArgParserProxy proxy = new ArgParserProxy(typeof(Class1)); ParserContext context = new ParserContext(); Queue<string> queue = new Queue<string>(); proxy.ReadActionMethodTokenPublic(queue, context); }