8 "github.com/stretchr/testify/mock"
\r
9 "github.com/pkg/errors"
\r
13 type mockValues struct {
\r
17 func (m *mockValues) GetCurrentUser() (*user.User, error) {
\r
18 fmt.Println("Mocked Get User")
\r
21 return args.Get(0).(*user.User), args.Error(1)
\r
24 func TestGetDirPath(t *testing.T) {
\r
25 fakeUser := user.User{}
\r
28 myMocks := new(mockValues)
\r
30 myMocks.On("GetCurrentUser").Return(&fakeUser, nil)
\r
31 myMocks.On("GetPath", u, "", "test_image").Return("", "")
\r
33 imageClient := ImageClient{myMocks, "test_image", "test_meta"}
\r
34 _, dir, err := imageClient.GetDirPath("")
\r
36 t.Errorf("Path was incorrect, got: %q, want: %q.", dir, "some_path")
\r
40 func (m *mockValues) DBCreate(name string, key ImageKey, meta string, c Image) error{
\r
41 fmt.Println("Mocked Create image in Mongo")
\r
42 args := m.Called(name, key, meta, c)
\r
44 return args.Error(0)
\r
47 func (m *mockValues) DBRead(name string, key ImageKey, meta string) ([]byte, error) {
\r
48 fmt.Println("Mocked Mongo DB Read Operations")
\r
49 args := m.Called(name, key, meta)
\r
51 return args.Get(0).([]byte), args.Error(1)
\r
54 func (m *mockValues) DBUnmarshal(value []byte, c Image) error {
\r
55 fmt.Println("Mocked Mongo DB Unmarshal Operation")
\r
56 args := m.Called(value, c)
\r
58 return args.Error(0)
\r
61 func (m *mockValues) GetPath(u *user.User, imageName string, storeName string) (string, string) {
\r
62 args := m.Called(u, "", "test_image")
\r
64 return args.String(0), args.String(1)
\r
67 func (m *mockValues) OSMakeDir(dirPath string, perm int) error {
\r
68 fmt.Println("Mocked OS Create Directory Operation")
\r
69 args := m.Called(dirPath, perm)
\r
71 return args.Error(0)
\r
74 func (m *mockValues) OSCreateFile(filePath string) error {
\r
75 fmt.Println("Mocked Create File Operation")
\r
76 args := m.Called(filePath)
\r
78 return args.Error(0)
\r
81 func (m *mockValues) DBDelete(name string, key ImageKey, meta string) error {
\r
82 fmt.Println("Mocked Mongo DB Delete")
\r
83 args := m.Called(name, key, meta)
\r
85 return args.Error(0)
\r
89 func (m *mockValues) OSRemove(filePath string) error {
\r
90 fmt.Println("Mocked OS File Remove")
\r
91 args := m.Called(filePath)
\r
93 return args.Error(0)
\r
96 func (m *mockValues) DBUpdate(s string, k ImageKey, t string, c Image) error {
\r
97 fmt.Println("Mocked Mongo DB Update")
\r
98 args := m.Called(s, k, t, c)
\r
100 return args.Error(0)
\r
103 func TestCreate(t *testing.T) {
\r
105 arr_data := []byte{}
\r
107 myMocks := new(mockValues)
\r
108 // just to get an error value
\r
109 err1 := errors.New("math: square root of negative number")
\r
111 fakeUser := user.User{}
\r
114 myMocks.On("DBCreate", "test_image", key, "test_meta", image).Return(nil)
\r
115 myMocks.On("DBRead", "test_image", key, "test_meta").Return(arr_data, err1)
\r
116 myMocks.On("DBUnmarshal", arr_data, image).Return(nil)
\r
117 myMocks.On("GetCurrentUser").Return(&fakeUser, nil)
\r
118 myMocks.On("GetPath", u, "", "test_image").Return("", "")
\r
119 myMocks.On("OSMakeDir", "", 0744).Return(nil)
\r
120 myMocks.On("OSCreateFile", "").Return(nil)
\r
122 imageClient := ImageClient{myMocks, "test_image", "test_meta"}
\r
123 _, err := imageClient.Create(image)
\r
125 t.Errorf("Some error occured!")
\r
129 func TestDelete(t *testing.T) {
\r
131 fakeUser := user.User{}
\r
134 myMocks := new(mockValues)
\r
136 myMocks.On("DBDelete", "test_image", key, "test_meta").Return(nil)
\r
137 myMocks.On("GetCurrentUser").Return(&fakeUser, nil)
\r
138 myMocks.On("GetPath", u, "", "test_image").Return("", "")
\r
139 myMocks.On("OSRemove", "").Return(nil)
\r
141 imageClient := ImageClient{myMocks, "test_image", "test_meta"}
\r
142 err := imageClient.Delete("")
\r
144 t.Errorf("Some error occured!")
\r
149 func TestUpdate(t *testing.T) {
\r
152 arr_data := []byte{}
\r
154 myMocks := new(mockValues)
\r
156 myMocks.On("DBRead", "test_image", key, "test_meta").Return(arr_data, nil)
\r
157 myMocks.On("DBUnmarshal", arr_data, image).Return(nil)
\r
158 myMocks.On("DBUpdate", "test_image", key, "test_meta", image).Return(nil)
\r
159 imageClient := ImageClient{myMocks, "test_image", "test_meta"}
\r
160 _, err := imageClient.Update("", image)
\r
162 t.Errorf("Some error occured!")
\r