Пример #1
0
    public void PropertyAsParameterInfoTests_ContainsPropertyCustomAttributes()
    {
        // Arrange
        var propertyInfo  = GetProperty(typeof(ArgumentList), nameof(ArgumentList.WithTestAttribute));
        var parameterInfo = new PropertyAsParameterInfo(propertyInfo);

        // Act & Assert
        Assert.Single(parameterInfo.GetCustomAttributes(typeof(TestAttribute)));
    }
Пример #2
0
    public void PropertyAsParameterInfoTests_DoesNotHaveDefaultValueFromProperty()
    {
        // Arrange & Act
        var propertyInfo  = GetProperty(typeof(ArgumentList), nameof(ArgumentList.NoAttribute));
        var parameterInfo = new PropertyAsParameterInfo(propertyInfo);

        // Assert
        Assert.False(parameterInfo.HasDefaultValue);
    }
Пример #3
0
    public void PropertyAsParameterInfoTests_WithConstructorArgument_FallbackToPropertyCustomAttributes()
    {
        // Arrange
        var propertyInfo  = GetProperty(typeof(ArgumentList), nameof(ArgumentList.WithTestAttribute));
        var parameter     = GetParameter(nameof(ArgumentList.DefaultMethod), nameof(ArgumentList.NoAttribute));
        var parameterInfo = new PropertyAsParameterInfo(propertyInfo, parameter);

        // Act & Assert
        Assert.Single(parameterInfo.GetCustomAttributes(typeof(TestAttribute)));
    }
Пример #4
0
    public void PropertyAsParameterInfoTests_WithConstructorArgument_DoesNotHaveDefaultValue()
    {
        // Arrange & Act
        var propertyInfo  = GetProperty(typeof(ArgumentList), nameof(ArgumentList.NoAttribute));
        var parameter     = GetParameter(nameof(ArgumentList.DefaultMethod), nameof(ArgumentList.NoAttribute));
        var parameterInfo = new PropertyAsParameterInfo(propertyInfo, parameter);

        // Assert
        Assert.False(parameterInfo.HasDefaultValue);
    }
Пример #5
0
    public void Initialization_SetsTypeAndNameFromPropertyInfo()
    {
        // Arrange & Act
        var propertyInfo  = GetProperty(typeof(ArgumentList), nameof(ArgumentList.NoAttribute));
        var parameterInfo = new PropertyAsParameterInfo(propertyInfo);

        // Assert
        Assert.Equal(propertyInfo.Name, parameterInfo.Name);
        Assert.Equal(propertyInfo.PropertyType, parameterInfo.ParameterType);
    }
Пример #6
0
    public void Initialization_WithConstructorArgument_SetsTypeAndNameFromPropertyInfo()
    {
        // Arrange & Act
        var propertyInfo  = GetProperty(typeof(ArgumentList), nameof(ArgumentList.NoAttribute));
        var parameter     = GetParameter(nameof(ArgumentList.DefaultMethod), nameof(ArgumentList.NoAttribute));
        var parameterInfo = new PropertyAsParameterInfo(propertyInfo, parameter);

        // Assert
        Assert.Equal(propertyInfo.Name, parameterInfo.Name);
        Assert.Equal(propertyInfo.PropertyType, parameterInfo.ParameterType);
    }
Пример #7
0
    public void PropertyAsParameterInfoTests_ContainsPropertyCustomAttributesData()
    {
        // Arrange
        var propertyInfo  = GetProperty(typeof(ArgumentList), nameof(ArgumentList.WithTestAttribute));
        var parameterInfo = new PropertyAsParameterInfo(propertyInfo);

        // Act
        var attributes = parameterInfo.GetCustomAttributesData();

        // Assert
        Assert.Single(
            attributes,
            a => typeof(TestAttribute).IsAssignableFrom(a.AttributeType));
    }
Пример #8
0
    public void PropertyAsParameterInfoTests_WithConstructorArgument_HasDefaultValue()
    {
        // Arrange & Act
        var propertyInfo  = GetProperty(typeof(ArgumentList), nameof(ArgumentList.NoAttribute));
        var parameter     = GetParameter(nameof(ArgumentList.DefaultMethod), "withDefaultValue");
        var parameterInfo = new PropertyAsParameterInfo(propertyInfo, parameter);

        // Assert
        Assert.True(parameterInfo.HasDefaultValue);
        Assert.NotNull(parameterInfo.DefaultValue);
        Assert.IsType <int>(parameterInfo.DefaultValue);
        Assert.NotNull(parameterInfo.RawDefaultValue);
        Assert.IsType <int>(parameterInfo.RawDefaultValue);
    }
Пример #9
0
    public void PropertyAsParameterInfoTests_WithConstructorArgument_MergePropertyAndParameterCustomAttributesData()
    {
        // Arrange & Act
        var propertyInfo  = GetProperty(typeof(ArgumentList), nameof(ArgumentList.WithTestAttribute));
        var parameter     = GetParameter(nameof(ArgumentList.DefaultMethod), nameof(ArgumentList.WithSampleAttribute));
        var parameterInfo = new PropertyAsParameterInfo(propertyInfo, parameter);

        // Act
        var attributes = parameterInfo.GetCustomAttributesData();

        // Assert
        Assert.Single(
            parameterInfo.GetCustomAttributesData(),
            a => typeof(TestAttribute).IsAssignableFrom(a.AttributeType));
        Assert.Single(
            parameterInfo.GetCustomAttributesData(),
            a => typeof(SampleAttribute).IsAssignableFrom(a.AttributeType));
    }