(t *testing.T)
| 9 | const DefaultS3Scheme = "s3" |
| 10 | |
| 11 | func TestS3ListChoosePathComponents(t *testing.T) { |
| 12 | var testCases = []struct { |
| 13 | // Input test path |
| 14 | path string |
| 15 | // Expected values |
| 16 | scheme string |
| 17 | bucket string |
| 18 | key string |
| 19 | isSuccessful bool |
| 20 | }{ |
| 21 | {"s3://bucket1/dir1/file1", DefaultS3Scheme, "bucket1", "dir1/file1", true}, |
| 22 | {"s3://bucket2/dir2/subdir2/file2", DefaultS3Scheme, "bucket2", "dir2/subdir2/file2", true}, |
| 23 | {"s3://bucket3/dir3/subdir3/subsubdir3/file3", DefaultS3Scheme, "bucket3", "dir3/subdir3/subsubdir3/file3", true}, |
| 24 | {"s3://bucket5/dir / 5", DefaultS3Scheme, "bucket5", "dir / 5", true}, |
| 25 | {"s3a://bucket5/dir / 5", DefaultS3Scheme + "a", "bucket5", "dir / 5", true}, |
| 26 | {"s3n://bucket5/dir / 5", DefaultS3Scheme + "n", "bucket5", "dir / 5", true}, |
| 27 | {"s3://bucket4", "", "", "", false}, |
| 28 | {"s3://buck e t 5/dir / 5", "", "", "", false}, |
| 29 | {"s:3://bucket6/dir/6", "", "", "", false}, |
| 30 | {"s://:3://bucket7/dir/7", "", "", "", false}, |
| 31 | {"dadwdwdwq :dqw//Dwqdwqdwq ", "", "", "", false}, |
| 32 | } |
| 33 | s3Input, err := NewS3Input("some-region", "some-bucket") |
| 34 | if err != nil { |
| 35 | t.Fatal(err) |
| 36 | } |
| 37 | for _, testCase := range testCases { |
| 38 | path := testCase.path |
| 39 | expectedBucket := testCase.bucket |
| 40 | expectedKey := testCase.key |
| 41 | expectedScheme := testCase.scheme |
| 42 | expectedIsSuccessful := testCase.isSuccessful |
| 43 | t.Run(path, func(t *testing.T) { |
| 44 | scheme, bucket, key, err := s3Input.choosePathComponents(path) |
| 45 | isSuccessful := true |
| 46 | if err != nil { |
| 47 | isSuccessful = false |
| 48 | } |
| 49 | if expectedBucket != bucket || expectedKey != key || expectedIsSuccessful != isSuccessful || expectedScheme != scheme { |
| 50 | t.Errorf("For path '%s' scheme '%s' bucket '%s' key '%s' success '%t' were expected, got '%s', '%s', '%s','%t'", path, expectedScheme, expectedBucket, expectedKey, expectedIsSuccessful, scheme, bucket, key, isSuccessful) |
| 51 | } |
| 52 | }) |
| 53 | } |
| 54 | } |
| 55 | |
| 56 | func TestS3ListChoosePathComponentsErrType(t *testing.T) { |
| 57 | tests := []struct { |
nothing calls this directly
no test coverage detected