@@ -22,6 +22,7 @@ import (
2222 "bytes"
2323 "spectra/ds3_go_sdk/ds3_utils/ds3Testing"
2424 "strconv"
25+ "spectra/core/ioutils"
2526)
2627
2728var client * ds3.Client
@@ -470,3 +471,57 @@ func TestDataPersistenceRule(t *testing.T) {
470471 t .Fatalf ("Expected DataIsolationLevel to be '%s' but was '%s'." , dataIsolationLevel .String (), response .DataPersistenceRule .IsolationLevel .String ())
471472 }
472473}
474+
475+ func TestPuttingFolder (t * testing.T ) {
476+ bucketName := "GoTestPuttingFolder"
477+ err := testutils .PutBucketLogError (t , client , bucketName )
478+ ds3Testing .AssertNilError (t , err )
479+
480+ defer deleteBucketAndContent (t , bucketName )
481+
482+ const folderPath = "Gracie/Eskimo/"
483+
484+ readSizer := ioutils .NewReadSizer (nil , 0 )
485+ putObjectRequest := models .NewPutObjectRequest (bucketName , folderPath , & readSizer )
486+ _ , err = client .PutObject (putObjectRequest )
487+ ds3Testing .AssertNilError (t , err )
488+
489+ getBucketRequest := models .NewGetBucketRequest (bucketName )
490+ getBucketResponse , err := client .GetBucket (getBucketRequest )
491+ ds3Testing .AssertNilError (t , err )
492+
493+ ds3Testing .AssertInt (t , "Number of objects in bucket" , 1 , len (getBucketResponse .ListBucketResult .Objects ))
494+ ds3Testing .AssertString (t , "Folder names equal" , folderPath , * getBucketResponse .ListBucketResult .Objects [0 ].Key )
495+ }
496+
497+ func deleteBucketAndContent (t * testing.T , bucketName string ) {
498+ testutils .DeleteBucketContents (client , bucketName )
499+ testutils .DeleteBucketLogError (t , client , bucketName )
500+ }
501+
502+ func TestPuttingZeroLengthObject (t * testing.T ) {
503+ bucketName := "GoTestPuttingZeroLengthObject"
504+ err := testutils .PutBucketLogError (t , client , bucketName )
505+ ds3Testing .AssertNilError (t , err )
506+
507+ defer deleteBucketAndContent (t , bucketName )
508+
509+ const objectName = "Gracie"
510+
511+ zeroBytes := make ([]byte , 0 )
512+
513+ putObjectRequest := models .NewPutObjectRequest (bucketName , objectName , ds3 .BuildByteReaderWithSizeDecorator (zeroBytes ))
514+
515+ _ , err = client .PutObject (putObjectRequest )
516+
517+ ds3Testing .AssertNilError (t , err )
518+
519+ getBucketRequest := models .NewGetBucketRequest (bucketName )
520+ getBucketResponse , err := client .GetBucket (getBucketRequest )
521+ ds3Testing .AssertNilError (t , err )
522+
523+ ds3Testing .AssertInt (t , "Number of objects in bucket" , 1 , len (getBucketResponse .ListBucketResult .Objects ))
524+ ds3Testing .AssertString (t , "Object names equal" , objectName , * getBucketResponse .ListBucketResult .Objects [0 ].Key )
525+ ds3Testing .AssertInt64 (t , "Object size equal" , 0 , getBucketResponse .ListBucketResult .Objects [0 ].Size )
526+ }
527+
0 commit comments