// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the Apache 2.0 License. // See the LICENSE file in the project root for more 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; } } } }