File: DiagDescriptorsTests.cs
Web Access
Project: src\test\Generators\Microsoft.Gen.ContextualOptions\Unit\Microsoft.Gen.ContextualOptions.Unit.Tests.csproj (Microsoft.Gen.ContextualOptions.Unit.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System;
using System.Collections.Generic;
using System.Reflection;
using Microsoft.CodeAnalysis;
using Xunit;
 
namespace Microsoft.Gen.ContextualOptions.Test;
 
public class DiagDescriptorsTests
{
    public static IEnumerable<object?[]> DiagDescriptorsData()
    {
        var type = typeof(DiagDescriptors);
        foreach (var property in type.GetProperties(BindingFlags.Public | BindingFlags.Static | BindingFlags.GetProperty))
        {
            var value = property.GetValue(type, null);
            yield return new[] { value };
        }
    }
 
    [Theory]
    [MemberData(nameof(DiagDescriptorsData))]
    public void ShouldContainValidLinkAndBeEnabled(DiagnosticDescriptor descriptor)
    {
        Assert.True(descriptor.IsEnabledByDefault, descriptor.Id + " should be enabled by default");
        Assert.EndsWith("/" + descriptor.Id, descriptor.HelpLinkUri, StringComparison.OrdinalIgnoreCase);
    }
}