1+ import { ddescribe , describe , it , iit , xit , expect } from 'test_lib/test_lib' ;
2+
3+ import { List , ListWrapper , MapWrapper } from 'facade/collection' ;
4+ import { Parser } from 'change_detection/parser/parser' ;
5+ import { Lexer } from 'change_detection/parser/lexer' ;
6+ import { ClosureMap } from 'change_detection/parser/closure_map' ;
7+
8+ import {
9+ ChangeDetector ,
10+ ProtoWatchGroup ,
11+ WatchGroup ,
12+ WatchGroupDispatcher ,
13+ ProtoRecord
14+ } from 'change_detection/change_detector' ;
15+
16+ import { Record } from 'change_detection/record' ;
17+
18+ export function main ( ) {
19+ function createRecord ( wg ) {
20+ return new Record ( wg , new ProtoRecord ( null , null , null , null , null ) , null ) ;
21+ }
22+
23+ describe ( 'watch group' , ( ) => {
24+ describe ( "adding records" , ( ) => {
25+ it ( "should add a record" , ( ) => {
26+ var wg = new WatchGroup ( null , null ) ;
27+ var record = createRecord ( wg ) ;
28+
29+ wg . addRecord ( record ) ;
30+
31+ expect ( wg . headRecord ) . toBe ( record ) ;
32+ expect ( wg . tailRecord ) . toBe ( record ) ;
33+ expect ( wg . headEnabledRecord ) . toBe ( record ) ;
34+ expect ( wg . tailEnabledRecord ) . toBe ( record ) ;
35+ } ) ;
36+
37+ it ( "should add multiple records" , ( ) => {
38+ var wg = new WatchGroup ( null , null ) ;
39+ var record1 = createRecord ( wg ) ;
40+ var record2 = createRecord ( wg ) ;
41+
42+ wg . addRecord ( record1 ) ;
43+ wg . addRecord ( record2 ) ;
44+
45+ expect ( wg . headRecord ) . toBe ( record1 ) ;
46+ expect ( wg . tailRecord ) . toBe ( record2 ) ;
47+
48+ expect ( wg . headEnabledRecord ) . toBe ( record1 ) ;
49+ expect ( wg . tailEnabledRecord ) . toBe ( record2 ) ;
50+
51+ expect ( record1 . next ) . toBe ( record2 ) ;
52+ expect ( record2 . prev ) . toBe ( record1 ) ;
53+ } ) ;
54+ } ) ;
55+
56+ describe ( "enabling/disabling records" , ( ) => {
57+ it ( "should disable a single record" , ( ) => {
58+ var wg = new WatchGroup ( null , null ) ;
59+ var record = createRecord ( wg ) ;
60+ wg . addRecord ( record ) ;
61+
62+ wg . disableRecord ( record ) ;
63+
64+ expect ( wg . headEnabledRecord ) . toBeNull ( ) ;
65+ expect ( wg . tailEnabledRecord ) . toBeNull ( ) ;
66+ } ) ;
67+
68+ it ( "should enable a single record" , ( ) => {
69+ var wg = new WatchGroup ( null , null ) ;
70+ var record = createRecord ( wg ) ;
71+ wg . addRecord ( record ) ;
72+ wg . disableRecord ( record ) ;
73+
74+ wg . enableRecord ( record ) ;
75+
76+ expect ( wg . headEnabledRecord ) . toBe ( record ) ;
77+ expect ( wg . tailEnabledRecord ) . toBe ( record ) ;
78+ } ) ;
79+
80+ it ( "should disable a record" , ( ) => {
81+ var wg = new WatchGroup ( null , null ) ;
82+ var record1 = createRecord ( wg ) ;
83+ var record2 = createRecord ( wg ) ;
84+ var record3 = createRecord ( wg ) ;
85+ var record4 = createRecord ( wg ) ;
86+ wg . addRecord ( record1 ) ;
87+ wg . addRecord ( record2 ) ;
88+ wg . addRecord ( record3 ) ;
89+ wg . addRecord ( record4 ) ;
90+
91+ wg . disableRecord ( record2 ) ;
92+ wg . disableRecord ( record3 ) ;
93+
94+ expect ( record2 . disabled ) . toBeTruthy ( ) ;
95+
96+ expect ( wg . headEnabledRecord ) . toBe ( record1 ) ;
97+ expect ( wg . tailEnabledRecord ) . toBe ( record4 ) ;
98+
99+ expect ( record1 . nextEnabled ) . toBe ( record4 ) ;
100+ expect ( record4 . prevEnabled ) . toBe ( record1 ) ;
101+ } ) ;
102+
103+ it ( "should enable a record" , ( ) => {
104+ var wg = new WatchGroup ( null , null ) ;
105+ var record1 = createRecord ( wg ) ;
106+ var record2 = createRecord ( wg ) ;
107+ var record3 = createRecord ( wg ) ;
108+ var record4 = createRecord ( wg ) ;
109+ wg . addRecord ( record1 ) ;
110+ wg . addRecord ( record2 ) ;
111+ wg . addRecord ( record3 ) ;
112+ wg . addRecord ( record4 ) ;
113+ wg . disableRecord ( record2 ) ;
114+ wg . disableRecord ( record3 ) ;
115+
116+ wg . enableRecord ( record2 ) ;
117+ wg . enableRecord ( record3 ) ;
118+
119+ expect ( record1 . nextEnabled ) . toBe ( record2 ) ;
120+ expect ( record2 . nextEnabled ) . toBe ( record3 ) ;
121+ expect ( record3 . nextEnabled ) . toBe ( record4 ) ;
122+ expect ( record4 . prevEnabled ) . toBe ( record3 ) ;
123+ } ) ;
124+ } )
125+ } ) ;
126+ }
0 commit comments