public void TryGetDefaultValue_ReturnsFalseIfNoDefaultValue() { // Arrange ParameterInfo pInfo = typeof(MyController).GetMethod("DefaultValues").GetParameters()[0]; // noDefaultValue // Act object defaultValue; bool retVal = ParameterInfoUtil.TryGetDefaultValue(pInfo, out defaultValue); // Assert Assert.False(retVal); Assert.Equal(default(object), defaultValue); }
public void TryGetDefaultValue_SecondChecksDefaultValueAttribute() { // Arrange ParameterInfo pInfo = typeof(MyController).GetMethod("DefaultValues").GetParameters()[1]; // hasDefaultValue // Act object defaultValue; bool retVal = ParameterInfoUtil.TryGetDefaultValue(pInfo, out defaultValue); // Assert Assert.True(retVal); Assert.Equal("someValue", defaultValue); }
/// <summary> /// Determine if the parameter in the collection with the specified index is a 'params' parameter. /// </summary> public static bool ParameterIsParams(ICollection parameters, int index) { bool isParams; if (parameters is List <ParameterDecl> ) { isParams = (((List <ParameterDecl>)parameters)[index].IsParams); } else //if (parameters is ParameterInfo[]) { isParams = ParameterInfoUtil.IsParams(((ParameterInfo[])parameters)[index]); } return(isParams); }
private static void ParameterTestHelper <TParam>(TParam expectedValue, string paramName, string actionMethodName) { ParameterInfo pInfo = typeof(MyController).GetMethod(actionMethodName).GetParameters().Single(p => p.Name == paramName); object returnValueObject; bool result = ParameterInfoUtil.TryGetDefaultValue(pInfo, out returnValueObject); Assert.True(result); if (expectedValue != null) { Assert.IsType <TParam>(returnValueObject); } TParam returnValue = (TParam)returnValueObject; Assert.Equal <TParam>(expectedValue, returnValue); }
/// <summary> /// Get the <see cref="ParameterModifier"/> for the specified <see cref="ParameterInfo"/>. /// </summary> public static ParameterModifier GetParameterModifier(ParameterInfo parameterInfo) { ParameterModifier modifier = ParameterModifier.None; if (ParameterInfoUtil.IsParams(parameterInfo)) { modifier = ParameterModifier.Params; } else if (ParameterInfoUtil.IsRef(parameterInfo)) { modifier = ParameterModifier.Ref; } else if (ParameterInfoUtil.IsOut(parameterInfo)) { modifier = ParameterModifier.Out; } return(modifier); }
public void TryGetDefaultValue_FirstChecksDefaultValue() { // Arrange Mock <ParameterInfo> mockPInfo = new Mock <ParameterInfo>() { DefaultValue = DefaultValue.Mock }; mockPInfo.Setup(p => p.DefaultValue).Returns(42); mockPInfo.Setup(p => p.Name).Returns("someParameter"); // Act object defaultValue; bool retVal = ParameterInfoUtil.TryGetDefaultValue(mockPInfo.Object, out defaultValue); // Assert Assert.True(retVal); Assert.Equal(42, defaultValue); }
public void TryGetDefaultValue_RespectsNullDefaultValue() { // Arrange Mock <ParameterInfo> mockPInfo = new Mock <ParameterInfo>() { DefaultValue = DefaultValue.Mock }; mockPInfo.Setup(p => p.DefaultValue).Returns(null); mockPInfo.Setup(p => p.Name).Returns("someParameter"); mockPInfo .Setup(p => p.GetCustomAttributes(typeof(DefaultValueAttribute[]), false)) .Returns(new DefaultValueAttribute[] { new DefaultValueAttribute(42) }); // Act object defaultValue; bool retVal = ParameterInfoUtil.TryGetDefaultValue(mockPInfo.Object, out defaultValue); // Assert Assert.True(retVal); Assert.Null(defaultValue); }
public void TryGetDefaultValue_RespectsNullRawDefaultValue() { // Arrange Mock <ParameterInfo> mockPInfo = new Mock <ParameterInfo>() { DefaultValue = DefaultValue.Mock }; mockPInfo.Expect(p => p.RawDefaultValue).Returns(null); mockPInfo.Expect(p => p.Name).Returns("someParameter"); mockPInfo .Expect(p => p.GetCustomAttributes(typeof(DefaultValueAttribute[]), false)) .Returns(new DefaultValueAttribute[] { new DefaultValueAttribute(42) }); // Act object defaultValue; bool retVal = ParameterInfoUtil.TryGetDefaultValue(mockPInfo.Object, out defaultValue); // Assert Assert.IsTrue(retVal); Assert.IsNull(defaultValue, "Shouldn't have looked at [DefaultValue] attribute."); }