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.
77 lines
2.7 KiB
77 lines
2.7 KiB
using NUnit.Framework;
|
|
using System;
|
|
using System.Reflection;
|
|
|
|
namespace UnityEngine.Rendering.HighDefinition.Tests
|
|
{
|
|
class ReflectionUtilsTests
|
|
{
|
|
class TestIntegersAllPublic
|
|
{
|
|
public int A;
|
|
public int B;
|
|
public int C;
|
|
}
|
|
|
|
class TestIntegersSomePublic
|
|
{
|
|
public int A;
|
|
private int B;
|
|
public int C;
|
|
}
|
|
|
|
class TestIntegersStatic
|
|
{
|
|
public static int A;
|
|
private static int B;
|
|
}
|
|
|
|
class TestObject
|
|
{
|
|
|
|
}
|
|
class TestIntegersWithTestObject
|
|
{
|
|
public TestObject A = new();
|
|
private TestObject B;
|
|
public int C;
|
|
}
|
|
|
|
class TestEmpty
|
|
{
|
|
}
|
|
|
|
private const BindingFlags k_InstanceNonPublic = BindingFlags.NonPublic | BindingFlags.Instance;
|
|
private const BindingFlags k_InstancePublic = BindingFlags.Public | BindingFlags.Instance;
|
|
|
|
private const BindingFlags k_StaticNonPublic = BindingFlags.NonPublic | BindingFlags.Static;
|
|
private const BindingFlags k_StaticPublic = BindingFlags.Public | BindingFlags.Static;
|
|
|
|
[Test]
|
|
[TestCase(typeof(TestEmpty), ExpectedResult = 0)]
|
|
[TestCase(typeof(TestIntegersAllPublic), ExpectedResult = 3)]
|
|
[TestCase(typeof(TestIntegersSomePublic), ExpectedResult = 3)]
|
|
[TestCase(typeof(TestIntegersStatic), ExpectedResult = 0)]
|
|
[TestCase(typeof(TestIntegersWithTestObject), ExpectedResult = 1)]
|
|
|
|
[TestCase(typeof(TestIntegersStatic), k_StaticNonPublic, ExpectedResult = 1)]
|
|
[TestCase(typeof(TestIntegersWithTestObject), k_InstanceNonPublic, ExpectedResult = 0)]
|
|
[TestCase(typeof(TestIntegersAllPublic), k_InstanceNonPublic, ExpectedResult = 0)]
|
|
[TestCase(typeof(TestIntegersSomePublic), k_InstanceNonPublic, ExpectedResult = 1)]
|
|
|
|
[TestCase(typeof(TestIntegersStatic), k_StaticPublic, ExpectedResult = 1)]
|
|
[TestCase(typeof(TestIntegersAllPublic), k_InstancePublic, ExpectedResult = 3)]
|
|
[TestCase(typeof(TestIntegersSomePublic), k_InstancePublic, ExpectedResult = 2)]
|
|
[TestCase(typeof(TestIntegersWithTestObject), k_InstancePublic, ExpectedResult = 1)]
|
|
|
|
[TestCase(typeof(TestIntegersAllPublic), k_StaticNonPublic, ExpectedResult = 0)]
|
|
[TestCase(typeof(TestIntegersAllPublic), k_StaticPublic, ExpectedResult = 0)]
|
|
|
|
public int ForEachFieldOfType(Type type, BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance)
|
|
{
|
|
int count = 0;
|
|
Activator.CreateInstance(type).ForEachFieldOfType<int>(value => count++, flags);
|
|
return count;
|
|
}
|
|
}
|
|
}
|