@@ -40,6 +40,31 @@ func TestBasicUploadWithAlias(t *testing.T) {
40
40
assert .Equal (t , val .args .sourceURIs [0 ], val .params .sourceURIs [0 ], "source is missing" )
41
41
assert .Equal (t , val .args .blobNames [0 ], val .params .targetAliases [0 ], "target alias is missing" )
42
42
}
43
+ func TestReadTokenExpForBlobSource (t * testing.T ) {
44
+ val := newParamParserValidator ()
45
+ val .args .blobNames = []string {"data" }
46
+ val .args .storageAccountName = "myaccount"
47
+ val .args .storageAccountKey = "mykey"
48
+ val .args .containerName = "mycont"
49
+ val .args .transferDefStr = "blob-file"
50
+
51
+ err := val .parseAndValidate ()
52
+ assert .NoError (t , err , "un expected error, all params should be set" )
53
+ assert .Equal (t , defaultReadTokenExp , val .params .blobSource .sasExpMin , "expiration time is not the default" )
54
+
55
+ val = newParamParserValidator ()
56
+ val .args .blobNames = []string {"data" }
57
+ val .args .storageAccountName = "myaccount"
58
+ val .args .storageAccountKey = "mykey"
59
+ val .args .containerName = "mycont"
60
+ val .args .transferDefStr = "blob-file"
61
+ val .args .readTokenExp = 10
62
+
63
+ err = val .parseAndValidate ()
64
+ assert .NoError (t , err , "un expected error, all params should be set" )
65
+ assert .Equal (t , val .args .readTokenExp , val .params .blobSource .sasExpMin , "expiration time is not the expected value" )
66
+
67
+ }
43
68
func TestBasicUploaBlockSizeLimits (t * testing.T ) {
44
69
val := newParamParserValidator ()
45
70
val .args .sourceURIs = []string {"data" }
@@ -154,4 +179,92 @@ func TestLongOptionDownload(t *testing.T) {
154
179
assert .Equal (t , tempval , val .params .blobSource .accountKey , "account key is not set" )
155
180
assert .Equal (t , c , val .params .blobSource .container , "container is not set" )
156
181
assert .Equal (t , b , val .params .blobSource .prefixes [0 ], "blobname is missing" )
182
+ assert .Equal (t , val .args .readTokenExp , val .params .blobSource .sasExpMin , "expiration time is not the expected value" )
183
+
157
184
}
185
+
186
+ func TestS3Transfer (t * testing.T ) {
187
+ val := newParamParserValidator ()
188
+ url := "mys3.myurl.com"
189
+ bucket := "bucket"
190
+ val .args .sourceURIs = []string {fmt .Sprintf ("s3://%v/%v" , url , bucket )}
191
+ val .args .storageAccountName = "myaccount"
192
+ val .args .storageAccountKey = "mykey"
193
+ val .args .containerName = "mycont"
194
+ val .args .transferDefStr = "s3-blockblob"
195
+
196
+ back := os .Getenv (s3AccessKeyEnvVar )
197
+
198
+ s3access := back
199
+ if s3access == "" {
200
+ s3access = "TEST"
201
+ }
202
+ os .Setenv (s3AccessKeyEnvVar , s3access )
203
+
204
+ defer os .Setenv (s3AccessKeyEnvVar , back )
205
+
206
+ back = os .Getenv (s3SecretKeyEnvVar )
207
+
208
+ s3key := back
209
+ if s3key == "" {
210
+ s3key = "TEST"
211
+ }
212
+ os .Setenv (s3SecretKeyEnvVar , s3access )
213
+
214
+ defer os .Setenv (s3SecretKeyEnvVar , back )
215
+
216
+ err := val .parseAndValidate ()
217
+ assert .NoError (t , err , "unexpected error, all params should be set" )
218
+ assert .Equal (t , val .args .storageAccountName , val .params .blobTarget .accountName , "account name is not set" )
219
+ assert .Equal (t , val .args .storageAccountKey , val .params .blobTarget .accountKey , "account key is not set" )
220
+ assert .Equal (t , val .args .containerName , val .params .blobTarget .container , "container is not set" )
221
+ assert .Equal (t , url , val .params .s3Source .endpoint , "url/endpoint is invalid" )
222
+ assert .Equal (t , bucket , val .params .s3Source .bucket , "bucket is invalid" )
223
+ assert .Equal (t , s3access , val .params .s3Source .accessKey , "access key is invalid" )
224
+ assert .Equal (t , s3key , val .params .s3Source .secretKey , "key is invalid" )
225
+ assert .Equal (t , val .args .readTokenExp , val .params .s3Source .preSignedExpMin , "exp time invalid" )
226
+ }
227
+
228
+ func TestS3TransferWithCustomExp (t * testing.T ) {
229
+ val := newParamParserValidator ()
230
+ url := "mys3.myurl.com"
231
+ bucket := "bucket"
232
+ val .args .sourceURIs = []string {fmt .Sprintf ("s3://%v/%v" , url , bucket )}
233
+ val .args .storageAccountName = "myaccount"
234
+ val .args .storageAccountKey = "mykey"
235
+ val .args .containerName = "mycont"
236
+ val .args .transferDefStr = "s3-blockblob"
237
+ val .args .readTokenExp = 10
238
+
239
+ back := os .Getenv (s3AccessKeyEnvVar )
240
+
241
+ s3access := back
242
+ if s3access == "" {
243
+ s3access = "TEST"
244
+ }
245
+ os .Setenv (s3AccessKeyEnvVar , s3access )
246
+
247
+ defer os .Setenv (s3AccessKeyEnvVar , back )
248
+
249
+ back = os .Getenv (s3SecretKeyEnvVar )
250
+
251
+ s3key := back
252
+ if s3key == "" {
253
+ s3key = "TEST"
254
+ }
255
+ os .Setenv (s3SecretKeyEnvVar , s3access )
256
+
257
+ defer os .Setenv (s3SecretKeyEnvVar , back )
258
+
259
+ err := val .parseAndValidate ()
260
+ assert .NoError (t , err , "unexpected error, all params should be set" )
261
+ assert .Equal (t , val .args .storageAccountName , val .params .blobTarget .accountName , "account name is not set" )
262
+ assert .Equal (t , val .args .storageAccountKey , val .params .blobTarget .accountKey , "account key is not set" )
263
+ assert .Equal (t , val .args .containerName , val .params .blobTarget .container , "container is not set" )
264
+ assert .Equal (t , url , val .params .s3Source .endpoint , "url/endpoint is invalid" )
265
+ assert .Equal (t , bucket , val .params .s3Source .bucket , "bucket is invalid" )
266
+ assert .Equal (t , s3access , val .params .s3Source .accessKey , "access key is invalid" )
267
+ assert .Equal (t , s3key , val .params .s3Source .secretKey , "key is invalid" )
268
+ assert .Equal (t , val .args .readTokenExp , val .params .s3Source .preSignedExpMin , "exp time invalid" )
269
+ }
270
+
0 commit comments