12
12
mockView = NewView (viewName , nil )
13
13
)
14
14
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
+
15
25
// Tests the creation of an empty ViewRegistry with no views registered.
16
26
func TestNewViewRegistry (t * testing.T ) {
17
27
require := require .New (t )
@@ -24,11 +34,7 @@ func TestNewViewRegistry(t *testing.T) {
24
34
func TestRegisterNonExistingView (t * testing.T ) {
25
35
require := require .New (t )
26
36
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 )
32
38
33
39
actualView , err := registry .View (dbName , viewName )
34
40
require .NoError (err )
@@ -39,13 +45,9 @@ func TestRegisterNonExistingView(t *testing.T) {
39
45
func TestRegisterExistingVIew (t * testing.T ) {
40
46
require := require .New (t )
41
47
42
- registry := NewViewRegistry ( )
48
+ registry := newMockRegistry ( require )
43
49
44
50
err := registry .Register (dbName , mockView )
45
- require .NoError (err )
46
- require .Equal (1 , len (registry .AllViews ()))
47
-
48
- err = registry .Register (dbName , mockView )
49
51
require .Error (err )
50
52
require .True (ErrExistingView .Is (err ))
51
53
}
@@ -54,13 +56,9 @@ func TestRegisterExistingVIew(t *testing.T) {
54
56
func TestDeleteExistingView (t * testing.T ) {
55
57
require := require .New (t )
56
58
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 )
62
60
63
- err = registry .Delete (dbName , viewName )
61
+ err : = registry .Delete (dbName , viewName )
64
62
require .NoError (err )
65
63
require .Equal (0 , len (registry .AllViews ()))
66
64
}
@@ -81,11 +79,7 @@ func TestDeleteNonExistingView(t *testing.T) {
81
79
func TestGetExistingView (t * testing.T ) {
82
80
require := require .New (t )
83
81
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 )
89
83
90
84
actualView , err := registry .View (dbName , viewName )
91
85
require .NoError (err )
@@ -131,3 +125,100 @@ func TestViewsInDatabase(t *testing.T) {
131
125
require .Equal (db .numViews , len (views ))
132
126
}
133
127
}
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