package drivers import ( "io/ioutil" "path" "testing" "github.com/stretchr/testify/assert" ) var testS3Driver S3Driver func TestS3Create(t *testing.T) { err := testS3Driver.Create("testkey", testFile) assert.Nil(t, err) body, err := testS3Driver.Read("testkey") assert.Nil(t, err) assert.Equal(t, []byte(testContent), body) } func TestS3Write(t *testing.T) { err := testS3Driver.Write("testkey", []byte(testContent)) assert.Nil(t, err) body, err := testS3Driver.Read("testkey") assert.Nil(t, err) assert.Equal(t, []byte(testContent), body) } func TestS3Get(t *testing.T) { err := testS3Driver.Write("testkey", []byte(testContent)) assert.Nil(t, err) err = testS3Driver.Get("testkey", path.Join(testDirectory, "dsttestfile")) assert.Nil(t, err) body, err := ioutil.ReadFile(path.Join(testDirectory, "dsttestfile")) assert.Nil(t, err) assert.Equal(t, []byte(testContent), body) } func TestS3Read(t *testing.T) { err := testS3Driver.Write("testkey", []byte(testContent)) assert.Nil(t, err) body, err := testS3Driver.Read("testkey") assert.Nil(t, err) assert.Equal(t, []byte(testContent), body) } func TestS3List(t *testing.T) { err := testS3Driver.Write("testkey", []byte(testContent)) assert.Nil(t, err) keys, err := testS3Driver.List("") assert.Nil(t, err) assert.Contains(t, keys, "testkey") } func TestS3Delete(t *testing.T) { err := testS3Driver.Write("testkey", []byte(testContent)) assert.Nil(t, err) keys, err := testS3Driver.List("") assert.Nil(t, err) assert.Contains(t, keys, "testkey") err = testS3Driver.Delete("testkey") assert.Nil(t, err) keys, err = testS3Driver.List("") assert.Nil(t, err) assert.NotContains(t, keys, "testkey") } func TestGetDownloadLink(t *testing.T) { err := testS3Driver.Write("testkey", []byte(testContent)) assert.Nil(t, err) link, err := testS3Driver.GetDownloadLink("testkey") assert.Nil(t, err) assert.Contains(t, link, "/testsnapshots/testkey?X-Amz-Algorithm=AWS4-HMAC-SHA256") }