public void CreateEvent() { var classEmitter = new CustomClassEmitter(Scope, "CreateEvent", typeof(object)); CustomEventEmitter eventEmitter = classEmitter.CreateEvent("Eve", EventKind.Instance, typeof(Func <string>)); eventEmitter.AddMethod.AddStatement(new ReturnStatement()); eventEmitter.RemoveMethod.AddStatement(new ReturnStatement()); object instance = Activator.CreateInstance(classEmitter.BuildType()); Assert.That(instance.GetType().GetEvent("Eve"), Is.Not.Null); }
public void SimpleEvent() { CustomEventEmitter eventEmitter = _classEmitter.CreateEvent("SimpleEvent", EventKind.Instance, typeof(EventHandler)); Assert.That(eventEmitter.Name, Is.EqualTo("SimpleEvent")); Assert.That(eventEmitter.EventType, Is.EqualTo(typeof(EventHandler))); Assert.That(eventEmitter.EventKind, Is.EqualTo(EventKind.Instance)); ImplementEventAddMethod(eventEmitter); ImplementEventRemoveMethod(eventEmitter); object instance = BuildInstance(); Assert.That(AddCalled(instance), Is.False); Assert.That(RemoveCalled(instance), Is.False); AddEventMethod(instance, eventEmitter, (EventHandler) delegate { }); Assert.That(AddCalled(instance), Is.True); Assert.That(RemoveCalled(instance), Is.False); RemoveEventMethod(instance, eventEmitter, (EventHandler) delegate { }); Assert.That(AddCalled(instance), Is.True); Assert.That(RemoveCalled(instance), Is.True); }