.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

31 lines
908 B

// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
using System.Reflection;
using NUnit.Framework;
namespace ICSharpCode.NRefactory.CSharp
{
[TestFixture]
public class AstStructureTests
{
[Test]
public void RolesAreStaticReadOnly()
{
foreach (Type type in typeof(AstNode).Assembly.GetExportedTypes()) {
if (type.IsSubclassOf(typeof(AstNode))) {
foreach (FieldInfo field in type.GetFields()) {
if (field.FieldType.IsSubclassOf(typeof(Role))) {
Assert.IsTrue(field.IsPublic);
Assert.IsTrue(field.IsStatic);
Assert.IsTrue(field.IsInitOnly);
Assert.IsTrue(field.Name.EndsWith("Role", StringComparison.Ordinal));
Assert.IsNotNull(field.GetValue(null));
}
}
}
}
}
}
}