@@ -298,6 +298,31 @@ public void Raise_custom_event_that_has_sender_and_args_but_does_not_inherit_fro
298
298
Assert . That ( eventRecorder . Sender , Is . SameAs ( sender ) ) ;
299
299
}
300
300
301
+ [ Test ]
302
+ public void MyEvent_with_CustomEventArgsWithInternalDefaultConstructor_is_raised ( )
303
+ {
304
+ // Arrange
305
+ var exampleInternalMock = Substitute . For < IExampleInternal > ( ) ;
306
+ var consumerInternal = new ConsumerInternal ( exampleInternalMock ) ;
307
+
308
+ // Act
309
+ exampleInternalMock . MyEvent += Raise . EventWith < CustomEventArgsWithInternalDefaultConstructor > ( this , null ! ) ;
310
+
311
+ // Assert
312
+ Assert . That ( consumerInternal . SomethingWasDone ) ;
313
+ }
314
+
315
+ [ Test ]
316
+ public void MyEvent_with_CustomEventArgsWithPrivateDefaultConstructor_throws_CannotCreateEventArgsException ( )
317
+ {
318
+ // Arrange
319
+ var examplePrivateMock = Substitute . For < IExamplePrivate > ( ) ;
320
+
321
+ // Act and Assert
322
+ Assert . Throws < CannotCreateEventArgsException > ( ( ) =>
323
+ examplePrivateMock . MyEvent += Raise . EventWith < CustomEventArgsWithPrivateDefaultConstructor > ( this , null ! ) ) ;
324
+ }
325
+
301
326
class RaisedEventRecorder < T >
302
327
{
303
328
public object Sender ;
@@ -339,4 +364,38 @@ public class CustomEventArgs : EventArgs { }
339
364
public class CustomEventArgsWithNoDefaultCtor ( string arg ) : EventArgs
340
365
{
341
366
}
367
+
368
+ public class CustomEventArgsWithInternalDefaultConstructor : EventArgs
369
+ {
370
+ internal CustomEventArgsWithInternalDefaultConstructor ( ) { }
371
+ }
372
+ public interface IExampleInternal
373
+ {
374
+ public event EventHandler < CustomEventArgsWithInternalDefaultConstructor > MyEvent ;
375
+ }
376
+ public class ConsumerInternal
377
+ {
378
+ public ConsumerInternal ( IExampleInternal example )
379
+ {
380
+ example . MyEvent += OnMyEvent ;
381
+ }
382
+ public bool SomethingWasDone { get ; private set ; }
383
+ private void OnMyEvent ( object sender , CustomEventArgsWithInternalDefaultConstructor args )
384
+ {
385
+ DoSomething ( ) ;
386
+ }
387
+ private void DoSomething ( )
388
+ {
389
+ SomethingWasDone = true ;
390
+ }
391
+ }
392
+
393
+ public class CustomEventArgsWithPrivateDefaultConstructor : EventArgs
394
+ {
395
+ private CustomEventArgsWithPrivateDefaultConstructor ( ) { }
396
+ }
397
+ public interface IExamplePrivate
398
+ {
399
+ public event EventHandler < CustomEventArgsWithPrivateDefaultConstructor > MyEvent ;
400
+ }
342
401
}
0 commit comments