Ejemplo n.º 1
0
        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."));
        }