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  }