(t *testing.T)
| 234 | } |
| 235 | |
| 236 | func 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 | } |
nothing calls this directly
no test coverage detected