mirror of https://github.com/icsharpcode/ILSpy.git
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.
70 lines
1.6 KiB
70 lines
1.6 KiB
using System; |
|
|
|
using Mono.Cecil; |
|
using Mono.Cecil.Metadata; |
|
|
|
using NUnit.Framework; |
|
|
|
namespace Mono.Cecil.Tests { |
|
|
|
[TestFixture] |
|
public class EventTests : BaseTestFixture { |
|
|
|
[Test] |
|
public void AbstractMethod () |
|
{ |
|
TestCSharp ("Events.cs", module => { |
|
var type = module.GetType ("Foo"); |
|
|
|
Assert.IsTrue (type.HasEvents); |
|
|
|
var events = type.Events; |
|
|
|
Assert.AreEqual (1, events.Count); |
|
|
|
var @event = events [0]; |
|
|
|
Assert.IsNotNull (@event); |
|
Assert.AreEqual ("Bar", @event.Name); |
|
Assert.IsNotNull (@event.EventType); |
|
Assert.AreEqual ("Pan", @event.EventType.FullName); |
|
|
|
Assert.IsNotNull (@event.AddMethod); |
|
Assert.AreEqual (MethodSemanticsAttributes.AddOn, @event.AddMethod.SemanticsAttributes); |
|
Assert.IsNotNull (@event.RemoveMethod); |
|
Assert.AreEqual (MethodSemanticsAttributes.RemoveOn, @event.RemoveMethod.SemanticsAttributes); |
|
}); |
|
} |
|
|
|
[Test] |
|
public void OtherMethod () |
|
{ |
|
TestIL ("others.il", module => { |
|
var type = module.GetType ("Others"); |
|
|
|
Assert.IsTrue (type.HasEvents); |
|
|
|
var events = type.Events; |
|
|
|
Assert.AreEqual (1, events.Count); |
|
|
|
var @event = events [0]; |
|
|
|
Assert.IsNotNull (@event); |
|
Assert.AreEqual ("Handler", @event.Name); |
|
Assert.IsNotNull (@event.EventType); |
|
Assert.AreEqual ("System.EventHandler", @event.EventType.FullName); |
|
|
|
Assert.IsTrue (@event.HasOtherMethods); |
|
|
|
Assert.AreEqual (2, @event.OtherMethods.Count); |
|
|
|
var other = @event.OtherMethods [0]; |
|
Assert.AreEqual ("dang_Handler", other.Name); |
|
|
|
other = @event.OtherMethods [1]; |
|
Assert.AreEqual ("fang_Handler", other.Name); |
|
}); |
|
} |
|
} |
|
}
|
|
|