1212 mockView = NewView (viewName , nil )
1313)
1414
15+ func newMockRegistry (require * require.Assertions ) * ViewRegistry {
16+ registry := NewViewRegistry ()
17+
18+ err := registry .Register (dbName , mockView )
19+ require .NoError (err )
20+ require .Equal (1 , len (registry .AllViews ()))
21+
22+ return registry
23+ }
24+
1525// Tests the creation of an empty ViewRegistry with no views registered.
1626func TestNewViewRegistry (t * testing.T ) {
1727 require := require .New (t )
@@ -24,11 +34,7 @@ func TestNewViewRegistry(t *testing.T) {
2434func TestRegisterNonExistingView (t * testing.T ) {
2535 require := require .New (t )
2636
27- registry := NewViewRegistry ()
28-
29- err := registry .Register (dbName , mockView )
30- require .NoError (err )
31- require .Equal (1 , len (registry .AllViews ()))
37+ registry := newMockRegistry (require )
3238
3339 actualView , err := registry .View (dbName , viewName )
3440 require .NoError (err )
@@ -39,13 +45,9 @@ func TestRegisterNonExistingView(t *testing.T) {
3945func TestRegisterExistingVIew (t * testing.T ) {
4046 require := require .New (t )
4147
42- registry := NewViewRegistry ( )
48+ registry := newMockRegistry ( require )
4349
4450 err := registry .Register (dbName , mockView )
45- require .NoError (err )
46- require .Equal (1 , len (registry .AllViews ()))
47-
48- err = registry .Register (dbName , mockView )
4951 require .Error (err )
5052 require .True (ErrExistingView .Is (err ))
5153}
@@ -54,13 +56,9 @@ func TestRegisterExistingVIew(t *testing.T) {
5456func TestDeleteExistingView (t * testing.T ) {
5557 require := require .New (t )
5658
57- registry := NewViewRegistry ()
58-
59- err := registry .Register (dbName , mockView )
60- require .NoError (err )
61- require .Equal (1 , len (registry .AllViews ()))
59+ registry := newMockRegistry (require )
6260
63- err = registry .Delete (dbName , viewName )
61+ err : = registry .Delete (dbName , viewName )
6462 require .NoError (err )
6563 require .Equal (0 , len (registry .AllViews ()))
6664}
@@ -81,11 +79,7 @@ func TestDeleteNonExistingView(t *testing.T) {
8179func TestGetExistingView (t * testing.T ) {
8280 require := require .New (t )
8381
84- registry := NewViewRegistry ()
85-
86- err := registry .Register (dbName , mockView )
87- require .NoError (err )
88- require .Equal (1 , len (registry .AllViews ()))
82+ registry := newMockRegistry (require )
8983
9084 actualView , err := registry .View (dbName , viewName )
9185 require .NoError (err )
@@ -131,3 +125,100 @@ func TestViewsInDatabase(t *testing.T) {
131125 require .Equal (db .numViews , len (views ))
132126 }
133127}
128+
129+ var viewKeys = []ViewKey {
130+ {
131+ "db1" ,
132+ "view1" ,
133+ },
134+ {
135+ "db1" ,
136+ "view2" ,
137+ },
138+ {
139+ "db2" ,
140+ "view1" ,
141+ },
142+ }
143+
144+ func registerKeys (registry * ViewRegistry , require * require.Assertions ) {
145+ for _ , key := range viewKeys {
146+ err := registry .Register (key .dbName , NewView (key .viewName , nil ))
147+ require .NoError (err )
148+ }
149+ require .Equal (len (viewKeys ), len (registry .AllViews ()))
150+ }
151+
152+ func TestDeleteExistingList (t * testing.T ) {
153+ require := require .New (t )
154+
155+ test := func (errIfNotExists bool ) {
156+ registry := NewViewRegistry ()
157+
158+ registerKeys (registry , require )
159+ err := registry .DeleteList (viewKeys , errIfNotExists )
160+ require .NoError (err )
161+ require .Equal (0 , len (registry .AllViews ()))
162+ }
163+
164+ test (true )
165+ test (false )
166+ }
167+
168+ func TestDeleteNonExistingList (t * testing.T ) {
169+ require := require .New (t )
170+
171+ test := func (errIfNotExists bool ) {
172+ registry := NewViewRegistry ()
173+
174+ registerKeys (registry , require )
175+ err := registry .DeleteList ([]ViewKey {{"random" , "random" }}, errIfNotExists )
176+ if errIfNotExists {
177+ require .Error (err )
178+ } else {
179+ require .NoError (err )
180+ }
181+ require .Equal (len (viewKeys ), len (registry .AllViews ()))
182+ }
183+
184+ test (false )
185+ test (true )
186+ }
187+
188+ func TestDeletePartiallyExistingList (t * testing.T ) {
189+ require := require .New (t )
190+
191+ test := func (errIfNotExists bool ) {
192+ registry := NewViewRegistry ()
193+
194+ registerKeys (registry , require )
195+ toDelete := append (viewKeys , ViewKey {"random" , "random" })
196+ err := registry .DeleteList (toDelete , errIfNotExists )
197+ if errIfNotExists {
198+ require .Error (err )
199+ require .Equal (len (viewKeys ), len (registry .AllViews ()))
200+ } else {
201+ require .NoError (err )
202+ require .Equal (0 , len (registry .AllViews ()))
203+ }
204+ }
205+
206+ test (false )
207+ test (true )
208+ }
209+
210+ func TestExistsOnExistingView (t * testing.T ) {
211+ require := require .New (t )
212+
213+ registry := newMockRegistry (require )
214+
215+ require .True (registry .Exists (dbName , viewName ))
216+ }
217+
218+ func TestExistsOnNonExistingView (t * testing.T ) {
219+ require := require .New (t )
220+
221+ registry := newMockRegistry (require )
222+
223+ require .False (registry .Exists ("non" , "existing" ))
224+ }
0 commit comments