18
18
import static org .junit .jupiter .api .Assertions .assertEquals ;
19
19
import static org .junit .jupiter .api .Assertions .assertTrue ;
20
20
21
- import com .google .common .collect .Iterators ;
22
21
import io .airbyte .db .factory .DSLContextFactory ;
23
22
import io .airbyte .db .init .DatabaseInitializationException ;
24
23
import io .airbyte .db .instance .configs .jooq .generated .enums .ActorType ;
@@ -54,6 +53,8 @@ class MetricRepositoryTest {
54
53
private static final String DEST = "dst" ;
55
54
private static final String CONN = "conn" ;
56
55
private static final String SYNC_QUEUE = "SYNC" ;
56
+ private static final String AWS_SYNC_QUEUE = "AWS_PARIS_SYNC" ;
57
+ private static final String AUTO_REGION = "AUTO" ;
57
58
private static final String EU_REGION = "EU" ;
58
59
59
60
private static final UUID SRC_DEF_ID = UUID .randomUUID ();
@@ -114,7 +115,7 @@ class NumJobs {
114
115
void shouldReturnReleaseStages () {
115
116
ctx .insertInto (ATTEMPTS , ATTEMPTS .ID , ATTEMPTS .JOB_ID , ATTEMPTS .STATUS , ATTEMPTS .PROCESSING_TASK_QUEUE )
116
117
.values (10L , 1L , AttemptStatus .running , SYNC_QUEUE ).values (20L , 2L , AttemptStatus .running , SYNC_QUEUE )
117
- .values (30L , 3L , AttemptStatus .running , SYNC_QUEUE ).values (40L , 4L , AttemptStatus .running , SYNC_QUEUE )
118
+ .values (30L , 3L , AttemptStatus .running , SYNC_QUEUE ).values (40L , 4L , AttemptStatus .running , AWS_SYNC_QUEUE )
118
119
.values (50L , 5L , AttemptStatus .running , SYNC_QUEUE )
119
120
.execute ();
120
121
final var srcId = UUID .randomUUID ();
@@ -138,7 +139,10 @@ void shouldReturnReleaseStages() {
138
139
.values (5L , inactiveConnectionId .toString (), JobStatus .running )
139
140
.execute ();
140
141
141
- assertEquals (2 , db .numberOfRunningJobsByTaskQueue ().get (SYNC_QUEUE ));
142
+ assertEquals (1 , db .numberOfRunningJobsByTaskQueue ().get (SYNC_QUEUE ));
143
+ assertEquals (1 , db .numberOfRunningJobsByTaskQueue ().get (AWS_SYNC_QUEUE ));
144
+ // To test we send 0 for 'null' to overwrite previous bug.
145
+ assertEquals (0 , db .numberOfRunningJobsByTaskQueue ().get ("null" ));
142
146
assertEquals (1 , db .numberOfOrphanRunningJobs ());
143
147
}
144
148
@@ -148,8 +152,9 @@ void runningJobsShouldReturnZero() throws SQLException {
148
152
ctx .insertInto (JOBS , JOBS .ID , JOBS .SCOPE , JOBS .STATUS ).values (1L , "" , JobStatus .pending ).execute ();
149
153
ctx .insertInto (JOBS , JOBS .ID , JOBS .SCOPE , JOBS .STATUS ).values (2L , "" , JobStatus .failed ).execute ();
150
154
151
- final var res = db .numberOfRunningJobsByTaskQueue ();
152
- assertTrue (res .isEmpty ());
155
+ final var result = db .numberOfRunningJobsByTaskQueue ();
156
+ assertEquals (result .get (SYNC_QUEUE ), 0 );
157
+ assertEquals (result .get (AWS_SYNC_QUEUE ), 0 );
153
158
}
154
159
155
160
@ Test
@@ -173,6 +178,7 @@ void pendingJobsShouldReturnCorrectCount() throws SQLException {
173
178
174
179
final var res = db .numberOfPendingJobsByGeography ();
175
180
assertEquals (2 , res .get (EU_REGION ));
181
+ assertEquals (0 , res .get (AUTO_REGION ));
176
182
}
177
183
178
184
@ Test
@@ -192,8 +198,9 @@ void pendingJobsShouldReturnZero() throws SQLException {
192
198
.values (2L , connectionUuid .toString (), JobStatus .failed )
193
199
.execute ();
194
200
195
- final var res = db .numberOfPendingJobsByGeography ();
196
- assertTrue (res .isEmpty ());
201
+ final var result = db .numberOfPendingJobsByGeography ();
202
+ assertEquals (result .get (AUTO_REGION ), 0 );
203
+ assertEquals (result .get (EU_REGION ), 0 );
197
204
}
198
205
199
206
}
@@ -248,8 +255,9 @@ void shouldReturnNothingIfNotApplicable() {
248
255
.values (2L , connectionUuid .toString (), JobStatus .running )
249
256
.values (3L , connectionUuid .toString (), JobStatus .failed ).execute ();
250
257
251
- final var res = db .oldestPendingJobAgeSecsByGeography ();
252
- assertTrue (res .isEmpty ());
258
+ final var result = db .oldestPendingJobAgeSecsByGeography ();
259
+ assertEquals (result .get (EU_REGION ), 0.0 );
260
+ assertEquals (result .get (AUTO_REGION ), 0.0 );
253
261
}
254
262
255
263
}
@@ -277,10 +285,10 @@ void shouldReturnOnlyRunningSeconds() {
277
285
.values (4L , "" , JobStatus .failed )
278
286
.execute ();
279
287
280
- final var result = Iterators .getOnlyElement (db .oldestRunningJobAgeSecsByTaskQueue ().entrySet ().iterator ());
281
- assertEquals (SYNC_QUEUE , result .getKey ());
288
+ final var result = db .oldestRunningJobAgeSecsByTaskQueue ();
282
289
// expected age is 1000 seconds, but allow for +/- 1 second to account for timing/rounding errors
283
- assertTrue (9999 < result .getValue () && result .getValue () < 10001L );
290
+ assertTrue (9999 < result .get (SYNC_QUEUE ) && result .get (SYNC_QUEUE ) < 10001L );
291
+ assertEquals (result .get (AWS_SYNC_QUEUE ), 0.0 );
284
292
}
285
293
286
294
@ Test
@@ -293,8 +301,9 @@ void shouldReturnNothingIfNotApplicable() {
293
301
.values (3L , "" , JobStatus .failed )
294
302
.execute ();
295
303
296
- final var res = db .oldestRunningJobAgeSecsByTaskQueue ();
297
- assertTrue (res .isEmpty ());
304
+ final var result = db .oldestRunningJobAgeSecsByTaskQueue ();
305
+ assertEquals (result .get (SYNC_QUEUE ), 0.0 );
306
+ assertEquals (result .get (AWS_SYNC_QUEUE ), 0.0 );
298
307
}
299
308
300
309
}
0 commit comments