public void CreateEvent_Accessors_ThrowsIfAlreadyExists() { var addRemoveMethod = MutableMethodInfoObjectMother.Create( _mutableType, parameters: new[] { ParameterDeclarationObjectMother.Create(typeof(Action)) }); var differentHandlerAddRemoveMethod = MutableMethodInfoObjectMother.Create( _mutableType, parameters: new[] { ParameterDeclarationObjectMother.Create(typeof(Func <int>)) }); var event_ = _mutableType.AddEvent2("Event", addMethod: addRemoveMethod, removeMethod: addRemoveMethod); Assert.That(() => _factory.CreateEvent(_mutableType, "OtherName", 0, addRemoveMethod, addRemoveMethod, null), Throws.Nothing); Assert.That( () => _factory.CreateEvent(_mutableType, event_.Name, 0, differentHandlerAddRemoveMethod, differentHandlerAddRemoveMethod, null), Throws.Nothing); Assert.That( () => _factory.CreateEvent(_mutableType, event_.Name, 0, addRemoveMethod, addRemoveMethod, null), Throws.InvalidOperationException.With.Message.EqualTo("Event with equal name and signature already exists.")); }