File tree 4 files changed +24
-14
lines changed
examples/Reactive.Streams.Example.Unicast.Tests
Reactive.Streams.TCK.Tests
4 files changed +24
-14
lines changed Original file line number Diff line number Diff line change 5
5
namespace Reactive . Streams . Example . Unicast . Tests
6
6
{
7
7
[ TestFixture ]
8
- public class SyncSubscriberWhiteboxTest : SubscriberWhiteboxVerification < int ? >
8
+ public class SyncSubscriberWhiteboxTest : SubscriberWhiteboxVerification < int >
9
9
{
10
10
public SyncSubscriberWhiteboxTest ( ) : base ( new TestEnvironment ( ) )
11
11
{
12
12
}
13
13
14
- public override int ? CreateElement ( int element ) => element ;
14
+ public override int CreateElement ( int element ) => element ;
15
15
16
- public override ISubscriber < int ? > CreateSubscriber ( WhiteboxSubscriberProbe < int ? > probe ) => new Subscriber ( probe ) ;
16
+ public override ISubscriber < int > CreateSubscriber ( WhiteboxSubscriberProbe < int > probe ) => new Subscriber ( probe ) ;
17
17
18
- private sealed class Subscriber : SyncSubscriber < int ? >
18
+ private sealed class Subscriber : SyncSubscriber < int >
19
19
{
20
- private readonly WhiteboxSubscriberProbe < int ? > _probe ;
20
+ private readonly WhiteboxSubscriberProbe < int > _probe ;
21
21
22
- public Subscriber ( WhiteboxSubscriberProbe < int ? > probe )
22
+ public Subscriber ( WhiteboxSubscriberProbe < int > probe )
23
23
{
24
24
_probe = probe ;
25
25
}
@@ -45,13 +45,13 @@ public SubscriberPuppet(ISubscription subscription)
45
45
public void SignalCancel ( ) => _subscription . Cancel ( ) ;
46
46
}
47
47
48
- public override void OnNext ( int ? element )
48
+ public override void OnNext ( int element )
49
49
{
50
50
base . OnNext ( element ) ;
51
51
_probe . RegisterOnNext ( element ) ;
52
52
}
53
53
54
- protected override bool WhenNext ( int ? element ) => true ;
54
+ protected override bool WhenNext ( int element ) => true ;
55
55
56
56
public override void OnError ( Exception cause )
57
57
{
Original file line number Diff line number Diff line change @@ -115,6 +115,12 @@ public void Required_spec213_blackbox_mustThrowNullPointerExceptionWhenParameter
115
115
( ) => CustomSubscriberVerification ( new LamdaSubscriber < int ? > ( ) ) . Required_spec213_blackbox_onNext_mustThrowNullPointerExceptionWhenParametersAreNull ( ) ,
116
116
"OnNext(null) did not throw ArgumentNullException" ) ;
117
117
118
+ [ Test ]
119
+ public void Required_spec213_blackbox_mustThrowNullPointerExceptionWhenParametersAreNull_mustIgnoreSpecForValueType_onNext ( )
120
+ => RequireTestSkip (
121
+ ( ) => SimpleSubscriberVerification ( ) . Required_spec213_blackbox_onNext_mustThrowNullPointerExceptionWhenParametersAreNull ( ) ,
122
+ "Can't verify behavior for value types" ) ;
123
+
118
124
[ Test ]
119
125
public void Required_spec213_blackbox_mustThrowNullPointerExceptionWhenParametersAreNull_mustFailOnIgnoredNull_onError ( )
120
126
=> RequireTestFailure (
Original file line number Diff line number Diff line change @@ -310,15 +310,17 @@ public void Required_spec213_blackbox_onSubscribe_mustThrowNullPointerExceptionW
310
310
public void Required_spec213_blackbox_onNext_mustThrowNullPointerExceptionWhenParametersAreNull ( )
311
311
=> BlackboxSubscriberWithoutSetupTest ( stage =>
312
312
{
313
+ var element = default ( T ) ;
314
+ if ( element != null )
315
+ throw new IgnoreException ( "Can't verify behavior for value types" ) ;
316
+
313
317
var subscriber = CreateSubscriber ( ) ;
314
318
var gotNpe = false ;
315
319
subscriber . OnSubscribe ( new Spec213DummySubscription ( ) ) ;
316
320
317
321
try
318
322
{
319
- // we can't use null here because we can't enforce a constsraint which supports Nullable<T>
320
- // default(T) will return null for all reference types as well as Nullable<T>
321
- subscriber . OnNext ( default ( T ) ) ;
323
+ subscriber . OnNext ( element ) ;
322
324
}
323
325
catch ( ArgumentNullException )
324
326
{
Original file line number Diff line number Diff line change @@ -329,13 +329,15 @@ public void Required_spec213_onSubscribe_mustThrowNullPointerExceptionWhenParame
329
329
public void Required_spec213_onNext_mustThrowNullPointerExceptionWhenParametersAreNull ( )
330
330
=> SubscriberTest ( stage =>
331
331
{
332
+ var element = default ( T ) ;
333
+ if ( element != null )
334
+ throw new IgnoreException ( "Can't verify behavior for value types" ) ;
335
+
332
336
var subscriber = stage . Sub ;
333
337
var gotNpe = false ;
334
338
try
335
339
{
336
- // we can't use null here because we can't enforce a constsraint which supports Nullable<T>
337
- // default(T) will return null for all reference types as well as Nullable<T>
338
- subscriber . OnNext ( default ( T ) ) ;
340
+ subscriber . OnNext ( element ) ;
339
341
}
340
342
catch ( ArgumentNullException )
341
343
{
You can’t perform that action at this time.
0 commit comments