/Mono.Cecil/rocks/Test/Mono.Cecil.Tests/MethodDefinitionRocksTests.cs

http://github.com/icsharpcode/ILSpy · C# · 53 lines · 40 code · 13 blank · 0 comment · 0 complexity · ea12b0311a07c9368370b9cfca928fa0 MD5 · raw file

  1. using System.Linq;
  2. using NUnit.Framework;
  3. using Mono.Cecil.Rocks;
  4. namespace Mono.Cecil.Tests {
  5. [TestFixture]
  6. public class MethodDefinitionRocksTests : BaseTestFixture {
  7. abstract class Foo {
  8. public abstract void DoFoo ();
  9. }
  10. class Bar : Foo {
  11. public override void DoFoo ()
  12. {
  13. }
  14. }
  15. class Baz : Bar {
  16. public override void DoFoo ()
  17. {
  18. }
  19. }
  20. [Test]
  21. public void GetBaseMethod ()
  22. {
  23. var baz = typeof (Baz).ToDefinition ();
  24. var baz_dofoo = baz.GetMethod ("DoFoo");
  25. var @base = baz_dofoo.GetBaseMethod ();
  26. Assert.AreEqual ("Bar", @base.DeclaringType.Name);
  27. @base = @base.GetBaseMethod ();
  28. Assert.AreEqual ("Foo", @base.DeclaringType.Name);
  29. Assert.AreEqual (@base, @base.GetBaseMethod ());
  30. }
  31. [Test]
  32. public void GetOriginalBaseMethod ()
  33. {
  34. var baz = typeof (Baz).ToDefinition ();
  35. var baz_dofoo = baz.GetMethod ("DoFoo");
  36. var @base = baz_dofoo.GetOriginalBaseMethod ();
  37. Assert.AreEqual ("Foo", @base.DeclaringType.Name);
  38. }
  39. }
  40. }