コード例 #1
0
        static void Main(string[] args)
        {
            var observer = new CustomObserver();

            var goodObservable = new CustomSequence(new[] { 1, 2, 3, 4, 5 });
            var badObservable  = new CustomSequence(null);

            using (IDisposable subscription = goodObservable.Subscribe(observer))
            {
            }

            using (IDisposable subscription = goodObservable.SubscribeOn(TaskPoolScheduler.Default).Subscribe(observer))
            {
                Thread.Sleep(TimeSpan.FromMilliseconds(100));
                Console.WriteLine("Press ENTER to continue");
                Console.ReadLine();
            }

            using (IDisposable subscription = badObservable.SubscribeOn(TaskPoolScheduler.Default).Subscribe(observer))
            {
                Thread.Sleep(TimeSpan.FromMilliseconds(100));
                Console.WriteLine("Press ENTER to continue");
                Console.ReadLine();
            }
        }
コード例 #2
0
        static void Main(string[] args)
        {
            var observer = new CustomObserver();

            var goodObservable = new CustomSequence(new[] { 1, 2, 3, 4, 5 });
            var badObservable  = new CustomSequence(null);

            using (IDisposable sunscription = goodObservable.Subscribe(observer))
            {
            }

            WriteLine($"Thread Id: {CurrentThread.ManagedThreadId}. Is Threadpool thread: {CurrentThread.IsThreadPoolThread}");

            using (IDisposable subscription = goodObservable.SubscribeOn(TaskPoolScheduler.Default).Subscribe(observer))
            {
                Sleep(TimeSpan.FromMilliseconds(100));
                WriteLine("Press ENTER to continue");
                ReadLine();
            }

            using (IDisposable subscription = badObservable.SubscribeOn(TaskPoolScheduler.Default).Subscribe(observer))
            {
                Sleep(TimeSpan.FromMilliseconds(100));
                WriteLine("Press ENTER to continue");
                ReadLine();
            }
        }
コード例 #3
0
        public void Logger_Write_Calls_For_Enter_Method()
        {
            // Arrange
            var stub = new StubILogWriter();
            var customObserver = new CustomObserver();
            // Providing custom observer to the stub
            stub.InstanceObserver = customObserver;

            // Act
            ILogWriter logWriter = stub;
            logWriter.Write("Message");

            // Assert
            Assert.That(customObserver.CalledMethodName,
                Is.StringContaining("ILogWriter.Write"));
            Assert.That(customObserver.CalledMethodArgument, Is.EqualTo("Message"));
        }