@@ -18,6 +18,7 @@ package kuberuntime
18
18
19
19
import (
20
20
"encoding/json"
21
+ "fmt"
21
22
"testing"
22
23
23
24
"github.com/stretchr/testify/assert"
@@ -44,6 +45,20 @@ func TestPullImage(t *testing.T) {
44
45
assert .Equal (t , images [0 ].RepoTags , []string {"busybox" })
45
46
}
46
47
48
+ func TestPullImageWithError (t * testing.T ) {
49
+ _ , fakeImageService , fakeManager , err := createTestRuntimeManager ()
50
+ assert .NoError (t , err )
51
+
52
+ fakeImageService .InjectError ("PullImage" , fmt .Errorf ("test-error" ))
53
+ imageRef , err := fakeManager .PullImage (kubecontainer.ImageSpec {Image : "busybox" }, nil , nil )
54
+ assert .Error (t , err )
55
+ assert .Equal (t , "" , imageRef )
56
+
57
+ images , err := fakeManager .ListImages ()
58
+ assert .NoError (t , err )
59
+ assert .Equal (t , 0 , len (images ))
60
+ }
61
+
47
62
func TestListImages (t * testing.T ) {
48
63
_ , fakeImageService , fakeManager , err := createTestRuntimeManager ()
49
64
assert .NoError (t , err )
@@ -62,6 +77,17 @@ func TestListImages(t *testing.T) {
62
77
assert .Equal (t , expected .List (), actual .List ())
63
78
}
64
79
80
+ func TestListImagesWithError (t * testing.T ) {
81
+ _ , fakeImageService , fakeManager , err := createTestRuntimeManager ()
82
+ assert .NoError (t , err )
83
+
84
+ fakeImageService .InjectError ("ListImages" , fmt .Errorf ("test-failure" ))
85
+
86
+ actualImages , err := fakeManager .ListImages ()
87
+ assert .Error (t , err )
88
+ assert .Nil (t , actualImages )
89
+ }
90
+
65
91
func TestGetImageRef (t * testing.T ) {
66
92
_ , fakeImageService , fakeManager , err := createTestRuntimeManager ()
67
93
assert .NoError (t , err )
@@ -73,6 +99,32 @@ func TestGetImageRef(t *testing.T) {
73
99
assert .Equal (t , image , imageRef )
74
100
}
75
101
102
+ func TestGetImageRefImageNotAvailableLocally (t * testing.T ) {
103
+ _ , _ , fakeManager , err := createTestRuntimeManager ()
104
+ assert .NoError (t , err )
105
+
106
+ image := "busybox"
107
+
108
+ imageRef , err := fakeManager .GetImageRef (kubecontainer.ImageSpec {Image : image })
109
+ assert .NoError (t , err )
110
+
111
+ imageNotAvailableLocallyRef := ""
112
+ assert .Equal (t , imageNotAvailableLocallyRef , imageRef )
113
+ }
114
+
115
+ func TestGetImageRefWithError (t * testing.T ) {
116
+ _ , fakeImageService , fakeManager , err := createTestRuntimeManager ()
117
+ assert .NoError (t , err )
118
+
119
+ image := "busybox"
120
+
121
+ fakeImageService .InjectError ("ImageStatus" , fmt .Errorf ("test-error" ))
122
+
123
+ imageRef , err := fakeManager .GetImageRef (kubecontainer.ImageSpec {Image : image })
124
+ assert .Error (t , err )
125
+ assert .Equal (t , "" , imageRef )
126
+ }
127
+
76
128
func TestRemoveImage (t * testing.T ) {
77
129
_ , fakeImageService , fakeManager , err := createTestRuntimeManager ()
78
130
assert .NoError (t , err )
@@ -86,6 +138,29 @@ func TestRemoveImage(t *testing.T) {
86
138
assert .Equal (t , 0 , len (fakeImageService .Images ))
87
139
}
88
140
141
+ func TestRemoveImageNoOpIfImageNotLocal (t * testing.T ) {
142
+ _ , _ , fakeManager , err := createTestRuntimeManager ()
143
+ assert .NoError (t , err )
144
+
145
+ err = fakeManager .RemoveImage (kubecontainer.ImageSpec {Image : "busybox" })
146
+ assert .NoError (t , err )
147
+ }
148
+
149
+ func TestRemoveImageWithError (t * testing.T ) {
150
+ _ , fakeImageService , fakeManager , err := createTestRuntimeManager ()
151
+ assert .NoError (t , err )
152
+
153
+ _ , err = fakeManager .PullImage (kubecontainer.ImageSpec {Image : "busybox" }, nil , nil )
154
+ assert .NoError (t , err )
155
+ assert .Equal (t , 1 , len (fakeImageService .Images ))
156
+
157
+ fakeImageService .InjectError ("RemoveImage" , fmt .Errorf ("test-failure" ))
158
+
159
+ err = fakeManager .RemoveImage (kubecontainer.ImageSpec {Image : "busybox" })
160
+ assert .Error (t , err )
161
+ assert .Equal (t , 1 , len (fakeImageService .Images ))
162
+ }
163
+
89
164
func TestImageStats (t * testing.T ) {
90
165
_ , fakeImageService , fakeManager , err := createTestRuntimeManager ()
91
166
assert .NoError (t , err )
@@ -101,6 +176,17 @@ func TestImageStats(t *testing.T) {
101
176
assert .Equal (t , expectedStats , actualStats )
102
177
}
103
178
179
+ func TestImageStatsWithError (t * testing.T ) {
180
+ _ , fakeImageService , fakeManager , err := createTestRuntimeManager ()
181
+ assert .NoError (t , err )
182
+
183
+ fakeImageService .InjectError ("ListImages" , fmt .Errorf ("test-failure" ))
184
+
185
+ actualImageStats , err := fakeManager .ImageStats ()
186
+ assert .Error (t , err )
187
+ assert .Nil (t , actualImageStats )
188
+ }
189
+
104
190
func TestPullWithSecrets (t * testing.T ) {
105
191
// auth value is equivalent to: "username":"passed-user","password":"passed-password"
106
192
dockerCfg := map [string ]map [string ]string {"index.docker.io/v1/" : {"email" : "passed-email" , "auth" : "cGFzc2VkLXVzZXI6cGFzc2VkLXBhc3N3b3Jk" }}
0 commit comments