Skip to content

Commit cc9af65

Browse files
authored
blob copy tests (Azure#19902)
1 parent 6239d3b commit cc9af65

File tree

1 file changed

+41
-11
lines changed

1 file changed

+41
-11
lines changed

src/Storage/Storage.Management.Test/ScenarioTests/StorageDataPlaneTests.ps1

+41-11
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ function Test-Blob
159159
New-TestResourceGroupAndStorageAccount -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName
160160

161161
try{
162-
162+
$location = Get-ProviderLocation ResourceManagement
163163
$storageAccountKeyValue = $(Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName)[0].Value
164164
$storageContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $storageAccountKeyValue
165165

@@ -168,7 +168,15 @@ function Test-Blob
168168
$localDestFile = "localdestblobtestfile.txt"
169169
$localDestFile2 = "localdestblobtestfile2.txt"
170170

171-
$containerName = "blobtestcontainer"
171+
$containerName = "blobtestcontainer"
172+
$storageAccountName2 = $storageAccountName + "2"
173+
New-AzStorageAccount -Name $storageAccountName2 -ResourceGroupName $ResourceGroupName -Location $location -Type 'Standard_LRS'
174+
$storageAccountKeyValue2 = $(Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName2)[0].Value
175+
$storageContext2 = New-AzStorageContext -StorageAccountName $StorageAccountName2 -StorageAccountKey $storageAccountKeyValue2
176+
$containerName3 = "blobtestcontainer2"
177+
New-AzStorageContainer $containerName3 -Context $storageContext
178+
New-AzStorageContainer $containerName3 -Context $storageContext2
179+
172180
$objectName1 = "blobtest1.txt"
173181
$objectName2 = "blobtest2.txt"
174182
$ContentType = "image/jpeg"
@@ -200,10 +208,12 @@ function Test-Blob
200208
$blob = Get-AzStorageContainer -Name $containerName -Context $storageContext | Get-AzStorageBlob
201209
Assert-AreEqual $blob.Count 1
202210
Assert-AreEqual $blob.Name $objectName1
203-
Assert-AreEqual $blob.ICloudBlob.Properties.ContentType $ContentType
204-
Assert-AreEqual $blob.ICloudBlob.Properties.ContentMD5 $ContentMD5
205-
Assert-AreEqual $blob.ICloudBlob.Properties.StandardBlobTier $StandardBlobTier
206-
$blob.ICloudBlob.SetStandardBlobTier($StandardBlobTier2, "High")
211+
Assert-AreEqual $blob.BlobProperties.ContentType $ContentType
212+
Assert-AreEqual $blob.BlobProperties.AccessTier $StandardBlobTier
213+
$contentHash = [System.Convert]::ToBase64String($blob.BlobProperties.ContentHash)
214+
Assert-AreEqual $contentHash $ContentMD5
215+
216+
$blob.BlobBaseClient.SetAccessTier($StandardBlobTier2)
207217
$blob.ICloudBlob.FetchAttributes()
208218
Assert-AreEqual $blob.ICloudBlob.Properties.StandardBlobTier $StandardBlobTier2
209219
Set-AzStorageBlobContent -File $localSrcFile -Container $containerName -Blob $objectName2 -Force -Properties @{"ContentType" = $ContentType; "ContentMD5" = $ContentMD5} -Context $storageContext
@@ -238,7 +248,7 @@ function Test-Blob
238248
Assert-AreEqual $blob.Count 2
239249
Assert-AreEqual $blob[0].Name $objectName1
240250
Assert-AreEqual $blob[1].Name $objectName2
241-
Assert-AreEqual $blob[1].ICloudBlob.Properties.StandardBlobTier $StandardBlobTier
251+
Assert-AreEqual $blob[1].BlobProperties.AccessTier $StandardBlobTier
242252

243253
# Download storage blob to compare with the local file.
244254
Get-AzStorageBlobContent -Container $containerName -Blob $objectName2 -Destination $localDestFile -Force -Context $storageContext
@@ -291,7 +301,7 @@ function Test-Blob
291301
Remove-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName -ContainerName $containerName -Etag $immutabilityPolicy.Etag
292302

293303
# Encryption Scope Test
294-
$scopename = "testscope"
304+
$scopename = "testscope"
295305
$scopename2 = "testscope2"
296306
$containerName2 = "testscopecontainer"
297307
New-AzStorageEncryptionScope -ResourceGroupName $ResourceGroupName -StorageAccountName $storageAccountName -EncryptionScopeName $scopename -StorageEncryption
@@ -350,10 +360,29 @@ function Test-Blob
350360
$blob = Get-AzStorageBlob -Container $containerNamevlw -Blob $objectName -Context $storageContext
351361
Set-AzStorageBlobLegalHold -Container $containerNamevlw -Blob $objectName -Context $storageContext -DisableLegalHold
352362
$blob = Get-AzStorageBlob -Container $containerNamevlw -Blob $objectName -Context $storageContext
363+
364+
$blobTypes = @("Block","Page","Append")
365+
# Upload blob for all 3 types of blobs
366+
foreach ($blobType in $blobTypes) {
367+
$blobName = $blobType + "SrcBlob"
368+
$t = Set-AzStorageBlobContent -File $localSrcFile -Container $containerName3 -Blob $blobName -Force -Properties @{"ContentType" = $ContentType} -Context $storageContext -BlobType $blobType
369+
}
370+
# Test all 9 directions of copy
371+
foreach ($srcType in $blobTypes) {
372+
foreach ($destType in $blobTypes) {
373+
$srcBlobName = $srcType + "SrcBlob"
374+
$destBlobName = $srcType + "To" + $destType + "Blob"
375+
$copiedBlob = Copy-AzStorageBlob -SrcContainer $containerName3 -SrcBlob $srcBlobName -Context $storageContext -DestContainer $containerName3 -DestBlob $destBlobName -DestContext $storageContext2 -DestBlobType $destType -Force
376+
Assert-AreEqual $copiedBlob.BlobProperties.BlobType $destType
377+
Assert-AreEqual $copiedBlob.Name $destBlobName
378+
Assert-AreEqual $copiedBlob.BlobBaseClient.AccountName $storageAccountName2
379+
}
380+
}
353381

354382
# Clean Storage Account
355383
Remove-AzStorageContainer -Name $containerName -Force -Context $storageContext
356-
384+
Remove-AzStorageContainer -Name $containerName3 -Force -Context $storageContext
385+
Remove-AzStorageContainer -Name $containerName3 -Force -Context $storageContext2
357386
}
358387
finally
359388
{
@@ -523,8 +552,9 @@ function Test-BlobFileCopy
523552
$blob = Get-AzStorageContainer -Name $containerName -Context $storageContext |Get-AzStorageBlob
524553
Assert-AreEqual $blob.Count 1
525554
Assert-AreEqual $blob.Name $objectName1
526-
Assert-AreEqual $blob.ICloudBlob.Properties.ContentType $ContentType
527-
Assert-AreEqual $blob.ICloudBlob.Properties.ContentMD5 $ContentMD5
555+
Assert-AreEqual $blob.BlobProperties.ContentType $ContentType
556+
$contentHash = [System.Convert]::ToBase64String($blob.BlobProperties.ContentHash)
557+
Assert-AreEqual $contentHash $ContentMD5
528558

529559
$shareName = "blobfilecopytestshare"
530560
#File Creation

0 commit comments

Comments
 (0)