Refactors unit test code 93/1893/1
authorenyinna1234 <enyinna.ochulor@intel.com>
Fri, 1 Nov 2019 00:31:12 +0000 (17:31 -0700)
committerenyinna1234 <enyinna.ochulor@intel.com>
Fri, 1 Nov 2019 00:40:27 +0000 (17:40 -0700)
- Removes OS functions from the Utility interface - /image.go
- Adds BPA_REST_API unit test Makefile recipe
- Removed vendor binary

Signed-off-by: Enyinna Ochulor <enyinna.ochulor@intel.com>
Change-Id: I59696b70a9e5bca9aba70e51e385a2a78d21c760

Makefile
cmd/bpa-restapi-agent/Makefile
cmd/bpa-restapi-agent/e2e_test.sh
cmd/bpa-restapi-agent/internal/app/image.go
cmd/bpa-restapi-agent/internal/app/image_test.go
cmd/bpa-restapi-agent/vendor.tar.gz [deleted file]

index 0a8e3be..dbf0439 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -64,6 +64,9 @@ bpa_rest_api_install:
 bpa_rest_api_verifier:
        pushd $(BPA_REST_API) && make e2e_test && popd
 
+bpa_rest_api_unit:
+       pushd $(BPA_REST_API) && make unit_test && popd
+
 bashate:
        bashate -i E006,E003,E002,E010,E011,E042,E043 `find . -type f -not -path './cmd/bpa-operator/vendor/*' -name *.sh`
 
index 6b41947..3ca017f 100644 (file)
@@ -1,22 +1,19 @@
 .PHONY: build
 
-build: untar
-       go build -mod=vendor -o build/_output/bin/bpa-restapi-agent main.go
+build:
+       go build -o build/_output/bin/bpa-restapi-agent main.go
 
 docker:        
-       docker build -t akraino.org/icn/bpa-restapi-agent:latest . -f build/Dockerfile
-
-untar:
-       tar -xzvf vendor.tar.gz
+       docker build -t akraino.org/icn/bpa-restapi-agent:latest . -f build/Dockerfile  
 
 deploy: docker
        ./bpa_api_install.sh
 
-test:  go_install
-       go test ./... -v
+unit_test: go_install
+       go test ./internal/app
 
 go_install:
-       install_go.sh
+       ./install_go.sh
 
 e2e_test: deploy
        ./e2e_test.sh
index 09c4582..cc41f21 100755 (executable)
@@ -36,19 +36,18 @@ if true ; then
 EOF
 fi
 
-curr_status=""
+cur_status=""
 
-while [[ $curr_status != "Running" ]]; do
+while [[ $cur_status != "Running" ]]; do
+
+    cur_status=$(kubectl get pods | grep bpa-api-deployment | awk '{print $3}')
+    if [[ $cur_status != "Running" ]]; then
+        echo "$(date +%H:%M:%S) - BPA-RESTful-API Pod status: $cur_status"
+    else
+        break
 
-    new_status=$(kubectl get pods | grep bpa-api-deployment | awk '{print $3}')
-    if [[ $new_status != $curr_status ]]; then
-        echo "$(date +%H:%M:%S) - BPA-RESTful-API Pod status: $new_status"
-        curr_status=$new_status
-        if [[ $new_status == "Running" ]]; then
-            break
-        fi
     fi
-    if [[ $new_status == "Err"* ]]; then
+    if [[ $cur_status == "Err"* ]]; then
         exit 1
     fi
     sleep 10
index 2c117a3..6b58100 100644 (file)
@@ -58,11 +58,8 @@ type Utility interface {
        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
 }
 
@@ -151,32 +148,15 @@ func (v *ImageClient) CreateFile(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
 }
@@ -267,16 +247,10 @@ func (v *ImageClient) Delete(imageName string) error {
        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
 }
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
diff --git a/cmd/bpa-restapi-agent/vendor.tar.gz b/cmd/bpa-restapi-agent/vendor.tar.gz
deleted file mode 100644 (file)
index 74490a2..0000000
Binary files a/cmd/bpa-restapi-agent/vendor.tar.gz and /dev/null differ