// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. using System.Collections.Generic; using System.Reactive; using System; namespace Microsoft.Reactive.Testing { class MockObserver : ITestableObserver { TestScheduler scheduler; List>> messages; public MockObserver(TestScheduler scheduler) { if (scheduler == null) throw new ArgumentNullException("scheduler"); this.scheduler = scheduler; this.messages = new List>>(); } public void OnNext(T value) { messages.Add(new Recorded>(scheduler.Clock, Notification.CreateOnNext(value))); } public void OnError(Exception exception) { messages.Add(new Recorded>(scheduler.Clock, Notification.CreateOnError(exception))); } public void OnCompleted() { messages.Add(new Recorded>(scheduler.Clock, Notification.CreateOnCompleted())); } public IList>> Messages { get { return messages; } } } }