MCPcopy Create free account
hub / github.com/AdRoll/baker / TestListS3Folder

Function TestListS3Folder

input/list_test.go:236–293  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

234}
235
236func TestListS3Folder(t *testing.T) {
237 defer testutil.DisableLogging()()
238
239 ch := make(chan *baker.Data)
240
241 generatedFiles := 3
242 generatedRecords := 10
243 receivedBytesLen := 0
244 var receivedFilesContent int64
245
246 wg := sync.WaitGroup{}
247 wg.Add(1)
248 go func() {
249 defer wg.Done()
250 for data := range ch {
251 if len(data.Bytes) > 0 {
252 atomic.AddInt64(&receivedFilesContent, 1)
253 receivedBytesLen += len(data.Bytes)
254 }
255 }
256 }()
257
258 cfg := baker.InputParams{
259 ComponentParams: baker.ComponentParams{
260 DecodedConfig: &ListConfig{
261 Files: []string{"@s3://bucket-name/path-prefix/"},
262 MatchPath: ".*\\.log\\.zst",
263 },
264 },
265 }
266
267 list, err := NewList(cfg)
268 if err != nil {
269 t.Error("Error creating List:", err)
270 return
271 }
272
273 svc, recordsLen, getObjCounter := mockS3Service(t, generatedFiles, generatedRecords, false)
274 list.(*List).svc = svc
275
276 if err := list.Run(ch); err != nil {
277 log.Fatalf("unexpected error %v", err)
278 }
279 close(ch)
280 wg.Wait()
281
282 if int(*getObjCounter) != generatedFiles {
283 t.Errorf("getObjCounter want: %d, got: %d", generatedFiles, int(*getObjCounter))
284 }
285
286 if int(receivedFilesContent) != generatedFiles {
287 t.Fatalf("receivedFilesContent want: %d, got: %d", generatedFiles, int(receivedFilesContent))
288 }
289
290 if recordsLen*generatedFiles != receivedBytesLen {
291 t.Fatalf("length want: %d, got: %d", recordsLen*generatedFiles, receivedBytesLen)
292 }
293}

Callers

nothing calls this directly

Calls 7

RunMethod · 0.95
DisableLoggingFunction · 0.92
NewListFunction · 0.85
DoneMethod · 0.80
mockS3ServiceFunction · 0.70
ErrorMethod · 0.45
WaitMethod · 0.45

Tested by

no test coverage detected