SynchronizationTest.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
  2. using System;
  3. using System.Reactive.Concurrency;
  4. using System.Threading;
  5. using Microsoft.Reactive.Testing;
  6. using Xunit;
  7. using ReactiveTests.Dummies;
  8. namespace ReactiveTests.Tests
  9. {
  10. public class SynchronizationTests
  11. {
  12. [Fact]
  13. public void Synchronization_SubscribeOn_ArgumentChecking()
  14. {
  15. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.SubscribeOn(default(IObservable<int>), Scheduler.Immediate));
  16. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.SubscribeOn(DummyObservable<int>.Instance, default(IScheduler)));
  17. #if !NO_SYNCCTX
  18. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.SubscribeOn(default(IObservable<int>), new MySyncCtx()));
  19. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.SubscribeOn(DummyObservable<int>.Instance, default(SynchronizationContext)));
  20. #endif
  21. }
  22. [Fact]
  23. public void Synchronization_ObserveOn_ArgumentChecking()
  24. {
  25. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.ObserveOn(default(IObservable<int>), Scheduler.Immediate));
  26. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.ObserveOn(DummyObservable<int>.Instance, default(IScheduler)));
  27. #if !NO_SYNCCTX
  28. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.ObserveOn(default(IObservable<int>), new MySyncCtx()));
  29. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.ObserveOn(DummyObservable<int>.Instance, default(SynchronizationContext)));
  30. #endif
  31. }
  32. [Fact]
  33. public void Synchronization_Synchronize_ArgumentChecking()
  34. {
  35. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.Synchronize(default(IObservable<int>)));
  36. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.Synchronize(default(IObservable<int>), new object()));
  37. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.Synchronize(DummyObservable<int>.Instance, null));
  38. }
  39. class MySyncCtx : SynchronizationContext
  40. {
  41. }
  42. }
  43. }