@@ -22,12 +22,16 @@ services:
22
22
// set up compose file
23
23
tmpfile , err := ioutil .TempFile ("" , "test" )
24
24
if err != nil {
25
- t .Fatal ("Unexpected error in creating test file" , err )
25
+ t .Fatal ("Unexpected error in creating test file: " , err )
26
26
}
27
27
defer os .Remove (tmpfile .Name ())
28
28
29
- tmpfile .Write ([]byte (composeFileString ))
30
- tmpfile .Close ()
29
+ if _ , err := tmpfile .Write ([]byte (composeFileString )); err != nil {
30
+ t .Fatal ("Unexpected error writing to test file: " , err )
31
+ }
32
+ if err := tmpfile .Close (); err != nil {
33
+ t .Fatal ("Unexpected error closing test file: " , err )
34
+ }
31
35
32
36
// setup project and parse
33
37
project := setupTestProject (t )
@@ -57,22 +61,30 @@ services:
57
61
// initialize temp files
58
62
tmpfile1 , err1 := ioutil .TempFile ("" , "test" )
59
63
if err1 != nil {
60
- t .Fatal ("Unexpected error in creating test file" , err1 )
64
+ t .Fatal ("Unexpected error in creating test file: " , err1 )
61
65
}
62
66
defer os .Remove (tmpfile1 .Name ())
63
67
64
68
tmpfile2 , err2 := ioutil .TempFile ("" , "test" )
65
69
if err2 != nil {
66
- t .Fatal ("Unexpected error in creating test file" , err2 )
70
+ t .Fatal ("Unexpected error in creating test file: " , err2 )
67
71
}
68
72
defer os .Remove (tmpfile2 .Name ())
69
73
70
- // write compose contents to file
71
- tmpfile1 .Write ([]byte (firstFileString ))
72
- tmpfile1 .Close ()
74
+ // write compose contents to files
75
+ if _ , err := tmpfile1 .Write ([]byte (firstFileString )); err != nil {
76
+ t .Fatal ("Unexpected error writing to test file: " , err )
77
+ }
78
+ if err := tmpfile1 .Close (); err != nil {
79
+ t .Fatal ("Unexpected error closing test file: " , err )
80
+ }
73
81
74
- tmpfile2 .Write ([]byte (secondFileString ))
75
- tmpfile2 .Close ()
82
+ if _ , err := tmpfile2 .Write ([]byte (secondFileString )); err != nil {
83
+ t .Fatal ("Unexpected error writing to test file: " , err )
84
+ }
85
+ if err := tmpfile2 .Close (); err != nil {
86
+ t .Fatal ("Unexpected error closing test file: " , err )
87
+ }
76
88
77
89
// setup project and check file version(s)
78
90
project := setupTestProject (t )
@@ -102,21 +114,147 @@ services:
102
114
// initialize temp files
103
115
tmpfile1 , err1 := ioutil .TempFile ("" , "test" )
104
116
if err1 != nil {
105
- t .Fatal ("Unexpected error in creating test file" , err1 )
117
+ t .Fatal ("Unexpected error in creating test file: " , err1 )
118
+ }
119
+ defer os .Remove (tmpfile1 .Name ())
120
+
121
+ tmpfile2 , err2 := ioutil .TempFile ("" , "test" )
122
+ if err2 != nil {
123
+ t .Fatal ("Unexpected error in creating test file: " , err2 )
124
+ }
125
+ defer os .Remove (tmpfile2 .Name ())
126
+
127
+ // write compose contents to files
128
+ if _ , err := tmpfile1 .Write ([]byte (version3FileString )); err != nil {
129
+ t .Fatal ("Unexpected error writing to test file: " , err )
130
+ }
131
+ if err := tmpfile1 .Close (); err != nil {
132
+ t .Fatal ("Unexpected error closing test file: " , err )
133
+ }
134
+
135
+ if _ , err := tmpfile2 .Write ([]byte (version2FileString )); err != nil {
136
+ t .Fatal ("Unexpected error writing to test file: " , err )
137
+ }
138
+ if err := tmpfile2 .Close (); err != nil {
139
+ t .Fatal ("Unexpected error closing test file: " , err )
140
+ }
141
+
142
+ // setup project and check that error is thrown for mismatches file versions
143
+ project := setupTestProject (t )
144
+ project .ecsContext .ComposeFiles = append (project .ecsContext .ComposeFiles , tmpfile1 .Name ())
145
+ project .ecsContext .ComposeFiles = append (project .ecsContext .ComposeFiles , tmpfile2 .Name ())
146
+ _ , error := project .checkComposeVersion ()
147
+
148
+ assert .Error (t , error )
149
+ }
150
+
151
+ func TestCheckComposeVersionWhenEmpty (t * testing.T ) {
152
+ testVersion := ""
153
+ composeFileString := `version: '` + testVersion + `'
154
+ services:
155
+ wordpress:
156
+ image: wordpress
157
+ ports: ["80:80"]
158
+ mem_reservation: 500000000
159
+ mysql:
160
+ image: mysql`
161
+
162
+ // set up compose file
163
+ tmpfile , err := ioutil .TempFile ("" , "test" )
164
+ if err != nil {
165
+ t .Fatal ("Unexpected error in creating test file: " , err )
166
+ }
167
+ defer os .Remove (tmpfile .Name ())
168
+
169
+ if _ , err := tmpfile .Write ([]byte (composeFileString )); err != nil {
170
+ t .Fatal ("Unexpected error writing to test file: " , err )
171
+ }
172
+ if err := tmpfile .Close (); err != nil {
173
+ t .Fatal ("Unexpected error closing test file: " , err )
174
+ }
175
+
176
+ // setup project and parse
177
+ project := setupTestProject (t )
178
+ project .ecsContext .ComposeFiles = append (project .ecsContext .ComposeFiles , tmpfile .Name ())
179
+ foundVersion , _ := project .checkComposeVersion ()
180
+
181
+ assert .Equal (t , testVersion , foundVersion , "Found compose version does not match expected." )
182
+ }
183
+
184
+ func TestCheckComposeVersionWhenMissing (t * testing.T ) {
185
+ testVersion := ""
186
+ composeFileString := `wordpress:
187
+ image: wordpress
188
+ ports: ["80:80"]
189
+ mem_reservation: 500000000
190
+ mysql:
191
+ image: mysql`
192
+
193
+ // set up compose file
194
+ tmpfile , err := ioutil .TempFile ("" , "test" )
195
+ if err != nil {
196
+ t .Fatal ("Unexpected error in creating test file: " , err )
197
+ }
198
+ defer os .Remove (tmpfile .Name ())
199
+
200
+ if _ , err := tmpfile .Write ([]byte (composeFileString )); err != nil {
201
+ t .Fatal ("Unexpected error writing to test file: " , err )
202
+ }
203
+ if err := tmpfile .Close (); err != nil {
204
+ t .Fatal ("Unexpected error closing test file: " , err )
205
+ }
206
+
207
+ // setup project and parse
208
+ project := setupTestProject (t )
209
+ project .ecsContext .ComposeFiles = append (project .ecsContext .ComposeFiles , tmpfile .Name ())
210
+ foundVersion , _ := project .checkComposeVersion ()
211
+
212
+ assert .Equal (t , testVersion , foundVersion , "Found compose version does not match expected." )
213
+ }
214
+
215
+ func TestThrowErrorWhenVersionInDifferentFormats (t * testing.T ) {
216
+ justMajorVersionFileString := `version: '2'
217
+ services:
218
+ wordpress:
219
+ image: wordpress
220
+ ports: ["80:80"]
221
+ mem_reservation: 500000000
222
+ mysql:
223
+ image: mysql`
224
+
225
+ withMinorVersionFileString := `version: '2.0'
226
+ services:
227
+ redis:
228
+ image: redis
229
+ ports: ["90:90"]`
230
+
231
+ // initialize temp files
232
+ tmpfile1 , err1 := ioutil .TempFile ("" , "test" )
233
+ if err1 != nil {
234
+ t .Fatal ("Unexpected error in creating test file: " , err1 )
106
235
}
107
236
defer os .Remove (tmpfile1 .Name ())
108
237
109
238
tmpfile2 , err2 := ioutil .TempFile ("" , "test" )
110
239
if err2 != nil {
111
- t .Fatal ("Unexpected error in creating test file" , err2 )
240
+ t .Fatal ("Unexpected error in creating test file: " , err2 )
112
241
}
113
242
defer os .Remove (tmpfile2 .Name ())
114
243
115
- // write compose contents to file
116
- tmpfile1 .Write ([]byte (version3FileString ))
117
- tmpfile1 .Close ()
118
- tmpfile2 .Write ([]byte (version2FileString ))
119
- tmpfile2 .Close ()
244
+ // write compose contents to files
245
+ if _ , err := tmpfile1 .Write ([]byte (justMajorVersionFileString )); err != nil {
246
+ t .Fatal ("Unexpected error writing to test file: " , err )
247
+ }
248
+ if err := tmpfile1 .Close (); err != nil {
249
+ t .Fatal ("Unexpected error closing test file: " , err )
250
+ }
251
+
252
+ if _ , err := tmpfile2 .Write ([]byte (withMinorVersionFileString )); err != nil {
253
+ t .Fatal ("Unexpected error writing to test file: " , err )
254
+ }
255
+ if err := tmpfile2 .Close (); err != nil {
256
+ t .Fatal ("Unexpected error closing test file: " , err )
257
+ }
120
258
121
259
// setup project and check that error is thrown for mismatches file versions
122
260
project := setupTestProject (t )
0 commit comments