More clean up

Signed-off-by: Carlisia <carlisiac@vmware.com>
pull/1390/head
Carlisia 2019-04-18 20:27:12 -07:00
parent 05a88345e5
commit c7bb288d87
No known key found for this signature in database
GPG Key ID: EE2E6F4D2C4B7117
2 changed files with 113 additions and 68 deletions

View File

@ -17,72 +17,67 @@ limitations under the License.
package azure
import (
"io"
"testing"
"time"
"github.com/Azure/azure-sdk-for-go/storage"
"github.com/pkg/errors"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"
)
type mockBlobGetter struct {
mock.Mock
}
// type mockBlobGetter struct {
// mock.Mock
// }
func (m *mockBlobGetter) getBlob(bucket string, key string) (blob, error) {
args := m.Called(bucket, key)
return args.Get(0).(blob), args.Error(1)
}
// func (m *mockBlobGetter) getBlob(bucket string, key string) (blob, error) {
// args := m.Called(bucket, key)
// return args.Get(0).(blob), args.Error(1)
// }
type mockBlob struct {
mock.Mock
}
// type mockBlob struct {
// mock.Mock
// }
func (m *mockBlob) CreateBlockBlobFromReader(blob io.Reader, options *storage.PutBlobOptions) error {
args := m.Called(blob, options)
return args.Error(0)
}
// func (m *mockBlob) CreateBlockBlobFromReader(blob io.Reader, options *storage.PutBlobOptions) error {
// args := m.Called(blob, options)
// return args.Error(0)
// }
func (m *mockBlob) Exists() (bool, error) {
args := m.Called()
return args.Bool(0), args.Error(1)
}
// func (m *mockBlob) Exists() (bool, error) {
// args := m.Called()
// return args.Bool(0), args.Error(1)
// }
func (m *mockBlob) Get(options *storage.GetBlobOptions) (io.ReadCloser, error) {
args := m.Called(options)
return args.Get(0).(io.ReadCloser), args.Error(1)
}
// func (m *mockBlob) Get(options *storage.GetBlobOptions) (io.ReadCloser, error) {
// args := m.Called(options)
// return args.Get(0).(io.ReadCloser), args.Error(1)
// }
func (m *mockBlob) Delete(options *storage.DeleteBlobOptions) error {
args := m.Called(options)
return args.Error(0)
}
// func (m *mockBlob) Delete(options *storage.DeleteBlobOptions) error {
// args := m.Called(options)
// return args.Error(0)
// }
func (m *mockBlob) GetSASURI(expiry time.Time, permissions string) (string, error) {
args := m.Called(expiry, permissions)
return args.String(0), args.Error(1)
}
// func (m *mockBlob) GetSASURI(expiry time.Time, permissions string) (string, error) {
// args := m.Called(expiry, permissions)
// return args.String(0), args.Error(1)
// }
type mockContainerGetter struct {
mock.Mock
}
// type mockContainerGetter struct {
// mock.Mock
// }
func (m *mockContainerGetter) getContainer(bucket string) (container, error) {
args := m.Called(bucket)
return args.Get(0).(container), args.Error(1)
}
// func (m *mockContainerGetter) getContainer(bucket string) (container, error) {
// args := m.Called(bucket)
// return args.Get(0).(container), args.Error(1)
// }
type mockContainer struct {
mock.Mock
}
// type mockContainer struct {
// mock.Mock
// }
func (m *mockContainer) ListBlobs(params storage.ListBlobsParameters) (storage.BlobListResponse, error) {
args := m.Called(params)
return args.Get(0).(storage.BlobListResponse), args.Error(1)
}
// func (m *mockContainer) ListBlobs(params storage.ListBlobsParameters) (storage.BlobListResponse, error) {
// args := m.Called(params)
// return args.Get(0).(storage.BlobListResponse), args.Error(1)
// }
func TestObjectExists(t *testing.T) {
tests := []struct {
@ -121,33 +116,69 @@ func TestObjectExists(t *testing.T) {
},
}
// for _, tc := range tests {
// t.Run(tc.name, func(t *testing.T) {
// blobGetter := new(mockBlobGetter)
// defer blobGetter.AssertExpectations(t)
// o := &objectStore{
// blobGetter: blobGetter,
// }
// bucket := "b"
// key := "k"
// blob := new(mockBlob)
// defer blob.AssertExpectations(t)
// blobGetter.On("getBlob", bucket, key).Return(blob, tc.getBlobError)
// blob.On("Exists").Return(tc.exists, tc.errorResponse)
// exists, err := o.ObjectExists(bucket, key)
// if tc.expectedError != "" {
// assert.EqualError(t, err, tc.expectedError)
// return
// }
// require.NoError(t, err)
// assert.Equal(t, tc.expectedExists, exists)
// })
// }
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
blobGetter := new(mockBlobGetter)
defer blobGetter.AssertExpectations(t)
// o := NewObjectStore(velerotest.NewLogger())
o := &objectStore{
blobGetter: blobGetter,
}
// bucket := "b"
// key := "k"
bucket := "b"
key := "k"
// // container := new(mockContainer)
// // container.On("getContainerReference", nil, bucket)
blob := new(mockBlob)
defer blob.AssertExpectations(t)
blobGetter.On("getBlob", bucket, key).Return(blob, tc.getBlobError)
// blob := new(mockBlob)
// defer blob.AssertExpectations(t)
// // blob.On("getBlobReference", container, key).Return(blob, tc.getBlobError)
// blob.On("Exists").Return(tc.exists, tc.errorResponse)
blob.On("Exists").Return(tc.exists, tc.errorResponse)
// exists, err := o.ObjectExists(bucket, key)
exists, err := o.ObjectExists(bucket, key)
// if tc.expectedError != "" {
// assert.EqualError(t, err, tc.expectedError)
// return
// }
// require.NoError(t, err)
if tc.expectedError != "" {
assert.EqualError(t, err, tc.expectedError)
return
}
require.NoError(t, err)
assert.Equal(t, tc.expectedExists, exists)
// assert.Equal(t, tc.expectedExists, exists)
})
}
}
type mockBlob struct {
mock.Mock
}
func (m *mockBlob) Exists() (bool, error) {
args := m.Called()
return args.Bool(0), args.Error(1)
}

View File

@ -70,6 +70,20 @@ func (o *InMemoryObjectStore) PutObject(bucket, key string, body io.Reader) erro
return nil
}
func (o *InMemoryObjectStore) ObjectExists(bucket, key string) (bool, error) {
bucketData, ok := o.Data[bucket]
if !ok {
return false, errors.New("bucket not found")
}
_, ok = bucketData[key]
if !ok {
return false, errors.New("key not found")
}
return true, nil
}
func (o *InMemoryObjectStore) GetObject(bucket, key string) (io.ReadCloser, error) {
bucketData, ok := o.Data[bucket]
if !ok {