ReflectionAssert.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // -----------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. // -----------------------------------------------------------------------
  4. using System;
  5. using System.ComponentModel.Composition;
  6. using Microsoft.VisualStudio.TestTools.UnitTesting;
  7. using System.Reflection;
  8. namespace System.UnitTesting
  9. {
  10. // Unfortunately, you can't rely on reference equality for MemberInfo and ParameterInfo
  11. // objects because, you may get different instances representing the same members depending
  12. // on the type that the member was retrieived from.
  13. public static class ReflectionAssert
  14. {
  15. public static void AreSame(MemberInfo expected, MemberInfo actual)
  16. {
  17. if (expected == null && actual == null)
  18. {
  19. return;
  20. }
  21. Assert.AreEqual(expected.MetadataToken, actual.MetadataToken);
  22. Assert.AreSame(expected.Module, actual.Module);
  23. Assert.AreEqual(expected.MemberType, actual.MemberType);
  24. }
  25. public static void AreSame(ParameterInfo expected, ParameterInfo actual)
  26. {
  27. if (expected == null && actual == null)
  28. {
  29. return;
  30. }
  31. ReflectionAssert.AreSame(expected.Member, actual.Member);
  32. Assert.AreEqual(expected.MetadataToken, actual.MetadataToken);
  33. }
  34. }
  35. }