@@ -73,7 +73,8 @@ Describe -Tag "Smoke" "S3" {
7373 BeforeAll {
7474 $script :bucketName = " pstest-" + [DateTime ]::Now.ToFileTime()
7575 New-S3Bucket - BucketName $script :bucketName
76-
76+
77+ $key = " versionTest"
7778 $void = New-Item - Path temp\bar - Type directory - Force
7879 $void = New-Item - Path temp\bar\baz - Type directory - Force
7980
@@ -85,6 +86,13 @@ Describe -Tag "Smoke" "S3" {
8586 Write-S3Object - BucketName $script :bucketName - KeyPrefix bar2\ - Folder .\temp\bar - Recurse
8687 Write-S3Object - BucketName $script :bucketName - Key bar2\foo.txt - Content " foo"
8788 Write-S3Object - BucketName $script :bucketName - Key basic.txt - File " temp\basic.txt"
89+
90+ Write-S3BucketVersioning - BucketName $script :bucketName - VersioningConfig_Status Enabled
91+
92+ Write-S3Object - BucketName $script :bucketName - Key $key - Content " Version 1"
93+ Write-S3Object - BucketName $script :bucketName - Key $key - Content " Version 2"
94+
95+ $s3ObjectVersions = Get-S3Version - BucketName $script :bucketName - Prefix $key
8896 }
8997
9098 AfterAll {
@@ -129,6 +137,18 @@ Describe -Tag "Smoke" "S3" {
129137 Read-S3Object - BucketName $script :bucketName - Key " basic.txt" - File " temp\basic2.txt"
130138 (Get-Content " temp\basic2.txt" ).Length | Should - BeGreaterThan 0
131139 }
140+
141+ It " Can retrieve a specific version using the VersionId alias" {
142+ $versionId = $s3ObjectVersions.Versions [0 ].VersionId
143+ Read-S3Object - BucketName $script :bucketName - Key $key - VersionId $versionId - File " temp\version-test.txt"
144+ (Get-Content " temp\version-test.txt" ) | Should - Be " Version 2"
145+ }
146+
147+ It " Can retrieve a specific version using the Version parameter" {
148+ $versionId = $s3ObjectVersions.Versions [1 ].VersionId
149+ Read-S3Object - BucketName $script :bucketName - Key $key - Version $versionId - File " temp\version-test.txt"
150+ (Get-Content " temp\version-test.txt" ) | Should - Be " Version 1"
151+ }
132152 }
133153
134154 Context " Copying" {
0 commit comments