DBCreate(storeName string, key ImageKey, meta string, c Image) error
DBRead(storeName string, key ImageKey, meta string) ([]byte, error)
DBUnmarshal(value []byte) (Image, error)
- OSMakeDir(dirpath string, perm int) error
- OSCreateFile(filePath string) error
GetPath(user *user.User, imageName string, storeName string) (string, string)
DBDelete(storeName string, key ImageKey, meta string) error
- OSRemove(filePath string) error
DBUpdate(storeName string, key ImageKey, tagMeta string, c Image) error
}
if err != nil {
return pkgerrors.Wrap(err, "Get file path")
}
- err = v.util.OSMakeDir(dirPath, 0744)
+ err = os.MkdirAll(dirPath, 0744)
if err != nil {
return pkgerrors.Wrap(err, "Make image directory")
}
- err = v.util.OSCreateFile(filePath)
+ file, err := os.Create(filePath)
if err != nil {
return pkgerrors.Wrap(err, "Create image file")
}
-
- return nil
-}
-
-func (d DBService) OSMakeDir(dirPath string, perm int) error {
- err := os.MkdirAll(dirPath, 0744)
- if err != nil {
- return pkgerrors.Wrap(err, "Make image directory")
- }
- return nil
-}
-
-func (d DBService) OSCreateFile(filePath string) error {
- file1, err := os.Create(filePath)
- if err != nil {
- return pkgerrors.Wrap(err, "Create image file")
- }
- defer file1.Close()
+ defer file.Close()
return nil
}
if err != nil {
return pkgerrors.Wrap(err, "Get file path")
}
- err = v.util.OSRemove(filePath)
-
- return nil
-}
-
-func (d DBService) OSRemove(filePath string) error {
- err := os.Remove(filePath)
- if err != nil {
- return pkgerrors.Wrap(err, "Delete image file")
- }
+ err = os.Remove(filePath)
+ if err != nil {
+ return pkgerrors.Wrap(err, "Delete image file")
+ }
return nil
}
\r
import (\r
"fmt"\r
+ "io/ioutil"\r
+ "log"\r
+ "os"\r
"os/user"\r
+ "path"\r
"testing"\r
\r
"github.com/stretchr/testify/mock"\r
return args.Get(0).([]byte), args.Error(1)\r
}\r
\r
-func (m *mockValues) DBUnmarshal(value []byte, c Image) error {\r
+func (m *mockValues) DBUnmarshal(value []byte) (Image, error) {\r
fmt.Println("Mocked Mongo DB Unmarshal Operation")\r
- args := m.Called(value, c)\r
+ args := m.Called(value)\r
\r
- return args.Error(0)\r
+ return args.Get(0).(Image), args.Error(1)\r
}\r
\r
func (m *mockValues) GetPath(u *user.User, imageName string, storeName string) (string, string) {\r
return args.String(0), args.String(1)\r
}\r
\r
-func (m *mockValues) OSMakeDir(dirPath string, perm int) error {\r
- fmt.Println("Mocked OS Create Directory Operation")\r
- args := m.Called(dirPath, perm)\r
- \r
- return args.Error(0)\r
-}\r
-\r
-func (m *mockValues) OSCreateFile(filePath string) error {\r
- fmt.Println("Mocked Create File Operation")\r
- args := m.Called(filePath)\r
-\r
- return args.Error(0)\r
-}\r
-\r
func (m *mockValues) DBDelete(name string, key ImageKey, meta string) error {\r
fmt.Println("Mocked Mongo DB Delete")\r
args := m.Called(name, key, meta)\r
\r
}\r
\r
-func (m *mockValues) OSRemove(filePath string) error {\r
- fmt.Println("Mocked OS File Remove")\r
- args := m.Called(filePath)\r
-\r
- return args.Error(0)\r
-}\r
-\r
func (m *mockValues) DBUpdate(s string, k ImageKey, t string, c Image) error {\r
fmt.Println("Mocked Mongo DB Update")\r
args := m.Called(s, k, t, c)\r
}\r
\r
func TestCreate(t *testing.T) {\r
- image := Image{}\r
+ dir, err := ioutil.TempDir("", "test_images")\r
+ if err != nil {\r
+ log.Fatal(err)\r
+ }\r
+ defer os.RemoveAll(dir)\r
+\r
+ image := Image{\r
+ ImageName: "test_asdf",\r
+ }\r
arr_data := []byte{}\r
- key := ImageKey{}\r
+ key := ImageKey{ImageName:"test_asdf"}\r
myMocks := new(mockValues)\r
// just to get an error value\r
err1 := errors.New("math: square root of negative number")\r
\r
fakeUser := user.User{}\r
u := &fakeUser\r
+ file_path := path.Join(dir, "test_asdf")\r
\r
myMocks.On("DBCreate", "test_image", key, "test_meta", image).Return(nil)\r
myMocks.On("DBRead", "test_image", key, "test_meta").Return(arr_data, err1)\r
- myMocks.On("DBUnmarshal", arr_data, image).Return(nil)\r
+ myMocks.On("DBUnmarshal", arr_data).Return(image, nil)\r
myMocks.On("GetCurrentUser").Return(&fakeUser, nil)\r
- myMocks.On("GetPath", u, "", "test_image").Return("", "")\r
- myMocks.On("OSMakeDir", "", 0744).Return(nil)\r
- myMocks.On("OSCreateFile", "").Return(nil)\r
+ myMocks.On("GetPath", u, "", "test_image").Return(file_path, dir)\r
\r
imageClient := ImageClient{myMocks, "test_image", "test_meta"}\r
- _, err := imageClient.Create(image)\r
+ _, err = imageClient.Create(image)\r
if err != nil {\r
t.Errorf("Some error occured!")\r
}\r
}\r
\r
func TestDelete(t *testing.T) {\r
- key := ImageKey{}\r
+ tmpfile, err := ioutil.TempFile("", "test_images")\r
+ if err != nil {\r
+ log.Fatal(err)\r
+ }\r
+ defer os.Remove(tmpfile.Name())\r
+\r
+ key := ImageKey{ImageName: "test_asdf"}\r
fakeUser := user.User{}\r
u := &fakeUser\r
+ file_path := tmpfile.Name()\r
\r
myMocks := new(mockValues)\r
\r
myMocks.On("DBDelete", "test_image", key, "test_meta").Return(nil)\r
myMocks.On("GetCurrentUser").Return(&fakeUser, nil)\r
- myMocks.On("GetPath", u, "", "test_image").Return("", "")\r
- myMocks.On("OSRemove", "").Return(nil)\r
+ myMocks.On("GetPath", u, "", "test_image").Return(file_path, "")\r
\r
imageClient := ImageClient{myMocks, "test_image", "test_meta"}\r
- err := imageClient.Delete("")\r
+ err = imageClient.Delete("test_asdf")\r
if err != nil {\r
t.Errorf("Some error occured!")\r
}\r
myMocks := new(mockValues)\r
\r
myMocks.On("DBRead", "test_image", key, "test_meta").Return(arr_data, nil)\r
- myMocks.On("DBUnmarshal", arr_data, image).Return(nil)\r
+ myMocks.On("DBUnmarshal", arr_data).Return(image, nil)\r
myMocks.On("DBUpdate", "test_image", key, "test_meta", image).Return(nil)\r
imageClient := ImageClient{myMocks, "test_image", "test_meta"}\r
_, err := imageClient.Update("", image)\r