Refactors unit test code
[icn.git] / cmd / bpa-restapi-agent / internal / app / image_test.go
index f90a5b3..e609477 100644 (file)
@@ -2,7 +2,11 @@ package app
 \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
@@ -51,11 +55,11 @@ func (m *mockValues) DBRead(name string, key ImageKey, meta string) ([]byte, err
     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
@@ -64,20 +68,6 @@ func (m *mockValues) GetPath(u *user.User, imageName string, storeName string) (
     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
@@ -86,13 +76,6 @@ func (m *mockValues) DBDelete(name string, key ImageKey, meta string) error {
 \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
@@ -101,45 +84,58 @@ func (m *mockValues) DBUpdate(s string, k ImageKey, t string, c Image) error {
 }\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
@@ -154,7 +150,7 @@ func TestUpdate(t *testing.T) {
     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