1
+ import * as Rx from 'rxjs' ;
2
+ import { TestMessage } from 'rxjs/testing/TestMessage' ;
3
+ import { SubscriptionLog } from 'rxjs/testing/SubscriptionLog' ;
4
+
5
+ /**
6
+ * Represents single metadata value emitted by HotObservable<T> or ColdObservable<T>
7
+ *
8
+ */
9
+ export class TestMessageValue < T = string > implements TestMessage {
10
+
11
+ constructor ( public readonly frame : number ,
12
+ public readonly notification : Rx . Notification < T > ) { }
13
+ }
14
+
15
+ /**
16
+ * Utility function to generate TestMessage represents value for Observer::next()
17
+ * @param frame virtual frame time when value will be emitted
18
+ * @param value
19
+ */
20
+ export function next < T = string > ( frame : number , value : T ) : TestMessage {
21
+ return new TestMessageValue ( frame , Rx . Notification . createNext ( value ) ) ;
22
+ }
23
+
24
+ /**
25
+ * Utility function to generate TestMessage represents error for Observer::error()
26
+ * @param frame virtual frame time when value will be emitted
27
+ * @param value
28
+ */
29
+ export function error ( frame : number , error : any ) : TestMessage {
30
+ return new TestMessageValue < any > ( frame , Rx . Notification . createError ( error ) ) ;
31
+ }
32
+
33
+ /**
34
+ * Utility function to generate TestMessage represents completion for Observer::complete()
35
+ * @param frame virtual frame time when value will be emitted
36
+ */
37
+ export function complete ( frame : number ) : TestMessage {
38
+ return new TestMessageValue < void > ( frame , Rx . Notification . createComplete ( ) ) ;
39
+ }
40
+
41
+ export function subscribe ( subscribedFrame : number ,
42
+ unsubscribedFrame : number = Number . POSITIVE_INFINITY ) {
43
+ return new SubscriptionLog ( subscribedFrame , unsubscribedFrame ) ;
44
+ }
0 commit comments