/Test/Mono.Cecil.Tests/EventTests.cs
http://github.com/jbevain/cecil · C# · 79 lines · 56 code · 23 blank · 0 comment · 0 complexity · cd7915f16f6c5704a9a73a8b3703e794 MD5 · raw file
- 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);
- });
- }
- [Test]
- public void UnattachedEvent ()
- {
- var int32 = typeof (int).ToDefinition ();
- var evt = new EventDefinition ("Event", EventAttributes.None, int32);
- Assert.AreEqual (null, evt.AddMethod);
- }
- }
- }