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 Microsoft.VisualStudio.TestTools.UnitTesting;
  7. using ReactiveTests.Dummies;
  8. namespace ReactiveTests.Tests
  9. {
  10. [TestClass]
  11. public class SynchronizationTests
  12. {
  13. [TestMethod]
  14. public void Synchronization_SubscribeOn_ArgumentChecking()
  15. {
  16. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.SubscribeOn(default(IObservable<int>), Scheduler.Immediate));
  17. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.SubscribeOn(DummyObservable<int>.Instance, default(IScheduler)));
  18. #if !NO_SYNCCTX
  19. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.SubscribeOn(default(IObservable<int>), new MySyncCtx()));
  20. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.SubscribeOn(DummyObservable<int>.Instance, default(SynchronizationContext)));
  21. #endif
  22. }
  23. [TestMethod]
  24. public void Synchronization_ObserveOn_ArgumentChecking()
  25. {
  26. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.ObserveOn(default(IObservable<int>), Scheduler.Immediate));
  27. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.ObserveOn(DummyObservable<int>.Instance, default(IScheduler)));
  28. #if !NO_SYNCCTX
  29. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.ObserveOn(default(IObservable<int>), new MySyncCtx()));
  30. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.ObserveOn(DummyObservable<int>.Instance, default(SynchronizationContext)));
  31. #endif
  32. }
  33. [TestMethod]
  34. public void Synchronization_Synchronize_ArgumentChecking()
  35. {
  36. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.Synchronize(default(IObservable<int>)));
  37. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.Synchronize(default(IObservable<int>), new object()));
  38. ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.Synchronize(DummyObservable<int>.Instance, null));
  39. }
  40. class MySyncCtx : SynchronizationContext
  41. {
  42. }
  43. }
  44. }