github.com/rudderlabs/rudder-go-kit@v0.30.0/testhelper/docker/resource/minio/minio_test.go (about) 1 package minio 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/minio/minio-go/v7" 8 "github.com/ory/dockertest/v3" 9 "github.com/stretchr/testify/require" 10 11 "github.com/rudderlabs/rudder-go-kit/filemanager" 12 ) 13 14 func TestMinioResource(t *testing.T) { 15 const prefix = "some-prefix" 16 const objectName = "minio.object" 17 18 pool, err := dockertest.NewPool("") 19 require.NoError(t, err) 20 21 minioResource, err := Setup(pool, t) 22 require.NoError(t, err) 23 24 _, err = minioResource.Client.FPutObject(context.Background(), 25 minioResource.BucketName, prefix+"/"+objectName, "testdata/minio.object", minio.PutObjectOptions{}, 26 ) 27 require.NoError(t, err) 28 c := minioResource.ToFileManagerConfig("some-prefix") 29 30 t.Run("can use a minio filemanager", func(t *testing.T) { 31 fm, err := filemanager.New(&filemanager.Settings{ 32 Provider: "MINIO", 33 Config: c, 34 }) 35 require.NoError(t, err) 36 37 it := fm.ListFilesWithPrefix(context.Background(), "", "some-prefix", 1) 38 items, err := it.Next() 39 require.NoError(t, err) 40 require.Len(t, items, 1) 41 }) 42 43 t.Run("can use a s3 filemanager", func(t *testing.T) { 44 fm, err := filemanager.New(&filemanager.Settings{ 45 Provider: "S3", 46 Config: c, 47 }) 48 require.NoError(t, err) 49 50 it := fm.ListFilesWithPrefix(context.Background(), "", "some-prefix", 1) 51 items, err := it.Next() 52 require.NoError(t, err) 53 require.Len(t, items, 1) 54 }) 55 }