12 "github.com/stretchr/testify/mock"
\r
13 "github.com/pkg/errors"
\r
17 type mockValues struct {
\r
21 func (m *mockValues) GetCurrentUser() (*user.User, error) {
\r
22 fmt.Println("Mocked Get User")
\r
25 return args.Get(0).(*user.User), args.Error(1)
\r
28 func TestGetDirPath(t *testing.T) {
\r
29 fakeUser := user.User{}
\r
32 myMocks := new(mockValues)
\r
34 myMocks.On("GetCurrentUser").Return(&fakeUser, nil)
\r
35 myMocks.On("GetPath", u, "", "test_image").Return("", "")
\r
37 imageClient := ImageClient{myMocks, "test_image", "test_meta"}
\r
38 _, dir, err := imageClient.GetDirPath("")
\r
40 t.Errorf("Path was incorrect, got: %q, want: %q.", dir, "some_path")
\r
44 func (m *mockValues) DBCreate(name string, key ImageKey, meta string, c Image) error{
\r
45 fmt.Println("Mocked Create image in Mongo")
\r
46 args := m.Called(name, key, meta, c)
\r
48 return args.Error(0)
\r
51 func (m *mockValues) DBRead(name string, key ImageKey, meta string) ([]byte, error) {
\r
52 fmt.Println("Mocked Mongo DB Read Operations")
\r
53 args := m.Called(name, key, meta)
\r
55 return args.Get(0).([]byte), args.Error(1)
\r
58 func (m *mockValues) DBUnmarshal(value []byte) (Image, error) {
\r
59 fmt.Println("Mocked Mongo DB Unmarshal Operation")
\r
60 args := m.Called(value)
\r
62 return args.Get(0).(Image), args.Error(1)
\r
65 func (m *mockValues) GetPath(u *user.User, imageName string, storeName string) (string, string) {
\r
66 args := m.Called(u, "", "test_image")
\r
68 return args.String(0), args.String(1)
\r
71 func (m *mockValues) DBDelete(name string, key ImageKey, meta string) error {
\r
72 fmt.Println("Mocked Mongo DB Delete")
\r
73 args := m.Called(name, key, meta)
\r
75 return args.Error(0)
\r
79 func (m *mockValues) DBUpdate(s string, k ImageKey, t string, c Image) error {
\r
80 fmt.Println("Mocked Mongo DB Update")
\r
81 args := m.Called(s, k, t, c)
\r
83 return args.Error(0)
\r
86 func TestCreate(t *testing.T) {
\r
87 dir, err := ioutil.TempDir("", "test_images")
\r
91 defer os.RemoveAll(dir)
\r
94 ImageName: "test_asdf",
\r
96 arr_data := []byte{}
\r
97 key := ImageKey{ImageName:"test_asdf"}
\r
98 myMocks := new(mockValues)
\r
99 // just to get an error value
\r
100 err1 := errors.New("math: square root of negative number")
\r
102 fakeUser := user.User{}
\r
104 file_path := path.Join(dir, "test_asdf")
\r
106 myMocks.On("DBCreate", "test_image", key, "test_meta", image).Return(nil)
\r
107 myMocks.On("DBRead", "test_image", key, "test_meta").Return(arr_data, err1)
\r
108 myMocks.On("DBUnmarshal", arr_data).Return(image, nil)
\r
109 myMocks.On("GetCurrentUser").Return(&fakeUser, nil)
\r
110 myMocks.On("GetPath", u, "", "test_image").Return(file_path, dir)
\r
112 imageClient := ImageClient{myMocks, "test_image", "test_meta"}
\r
113 _, err = imageClient.Create(image)
\r
115 t.Errorf("Some error occured!")
\r
119 func TestDelete(t *testing.T) {
\r
120 tmpfile, err := ioutil.TempFile("", "test_images")
\r
124 defer os.Remove(tmpfile.Name())
\r
126 key := ImageKey{ImageName: "test_asdf"}
\r
127 fakeUser := user.User{}
\r
129 file_path := tmpfile.Name()
\r
131 myMocks := new(mockValues)
\r
133 myMocks.On("DBDelete", "test_image", key, "test_meta").Return(nil)
\r
134 myMocks.On("GetCurrentUser").Return(&fakeUser, nil)
\r
135 myMocks.On("GetPath", u, "", "test_image").Return(file_path, "")
\r
137 imageClient := ImageClient{myMocks, "test_image", "test_meta"}
\r
138 err = imageClient.Delete("test_asdf")
\r
140 t.Errorf("Some error occured!")
\r
145 func TestUpdate(t *testing.T) {
\r
148 arr_data := []byte{}
\r
150 myMocks := new(mockValues)
\r
152 myMocks.On("DBRead", "test_image", key, "test_meta").Return(arr_data, nil)
\r
153 myMocks.On("DBUnmarshal", arr_data).Return(image, nil)
\r
154 myMocks.On("DBUpdate", "test_image", key, "test_meta", image).Return(nil)
\r
155 imageClient := ImageClient{myMocks, "test_image", "test_meta"}
\r
156 _, err := imageClient.Update("", image)
\r
158 t.Errorf("Some error occured!")
\r