@@ -271,47 +271,42 @@ public void TestVersionedContainer()
271271 string fileData1 = "first-content" ;
272272 string fileData2 = "second-content" ;
273273
274+ /*
275+ * Create the object
276+ */
277+
274278 using ( MemoryStream uploadStream = new MemoryStream ( Encoding . UTF8 . GetBytes ( fileData1 ) ) )
275279 {
276280 provider . CreateObject ( containerName , uploadStream , objectName ) ;
277281 }
278282
279- using ( MemoryStream downloadStream = new MemoryStream ( ) )
280- {
281- provider . GetObject ( containerName , objectName , downloadStream ) ;
283+ string actualData = ReadAllObjectText ( provider , containerName , objectName , Encoding . UTF8 ) ;
284+ Assert . AreEqual ( fileData1 , actualData ) ;
282285
283- downloadStream . Position = 0 ;
284- StreamReader reader = new StreamReader ( downloadStream , Encoding . UTF8 ) ;
285- string actualData = reader . ReadToEnd ( ) ;
286- Assert . AreEqual ( fileData1 , actualData ) ;
287- }
286+ /*
287+ * Overwrite the object
288+ */
288289
289290 using ( MemoryStream uploadStream = new MemoryStream ( Encoding . UTF8 . GetBytes ( fileData2 ) ) )
290291 {
291292 provider . CreateObject ( containerName , uploadStream , objectName ) ;
292293 }
293294
294- using ( MemoryStream downloadStream = new MemoryStream ( ) )
295- {
296- provider . GetObject ( containerName , objectName , downloadStream ) ;
295+ actualData = ReadAllObjectText ( provider , containerName , objectName , Encoding . UTF8 ) ;
296+ Assert . AreEqual ( fileData2 , actualData ) ;
297297
298- downloadStream . Position = 0 ;
299- StreamReader reader = new StreamReader ( downloadStream , Encoding . UTF8 ) ;
300- string actualData = reader . ReadToEnd ( ) ;
301- Assert . AreEqual ( fileData2 , actualData ) ;
302- }
298+ /*
299+ * Delete the object once
300+ */
303301
304302 provider . DeleteObject ( containerName , objectName ) ;
305303
306- using ( MemoryStream downloadStream = new MemoryStream ( ) )
307- {
308- provider . GetObject ( containerName , objectName , downloadStream ) ;
304+ actualData = ReadAllObjectText ( provider , containerName , objectName , Encoding . UTF8 ) ;
305+ Assert . AreEqual ( fileData1 , actualData ) ;
309306
310- downloadStream . Position = 0 ;
311- StreamReader reader = new StreamReader ( downloadStream , Encoding . UTF8 ) ;
312- string actualData = reader . ReadToEnd ( ) ;
313- Assert . AreEqual ( fileData1 , actualData ) ;
314- }
307+ /*
308+ * Cleanup
309+ */
315310
316311 provider . DeleteContainer ( versionsContainerName , deleteObjects : true ) ;
317312 provider . DeleteContainer ( containerName , deleteObjects : true ) ;
@@ -1153,15 +1148,8 @@ public void TestCreateObjectFromFile_UseFileName()
11531148 File . Delete ( tempFilePath ) ;
11541149 }
11551150
1156- using ( MemoryStream testStream = new MemoryStream ( ) )
1157- {
1158- provider . GetObject ( containerName , Path . GetFileName ( tempFilePath ) , testStream ) ;
1159-
1160- testStream . Position = 0 ;
1161- StreamReader reader = new StreamReader ( testStream , Encoding . UTF8 ) ;
1162- string actualData = reader . ReadToEnd ( ) ;
1163- Assert . AreEqual ( fileData , actualData ) ;
1164- }
1151+ string actualData = ReadAllObjectText ( provider , containerName , Path . GetFileName ( tempFilePath ) , Encoding . UTF8 ) ;
1152+ Assert . AreEqual ( fileData , actualData ) ;
11651153
11661154 /* Cleanup
11671155 */
@@ -1198,15 +1186,8 @@ public void TestCreateObjectFromFile_UseCustomObjectName()
11981186 File . Delete ( tempFilePath ) ;
11991187 }
12001188
1201- using ( MemoryStream testStream = new MemoryStream ( ) )
1202- {
1203- provider . GetObject ( containerName , objectName , testStream ) ;
1204-
1205- testStream . Position = 0 ;
1206- StreamReader reader = new StreamReader ( testStream , Encoding . UTF8 ) ;
1207- string actualData = reader . ReadToEnd ( ) ;
1208- Assert . AreEqual ( fileData , actualData ) ;
1209- }
1189+ string actualData = ReadAllObjectText ( provider , containerName , objectName , Encoding . UTF8 ) ;
1190+ Assert . AreEqual ( fileData , actualData ) ;
12101191
12111192 /* Cleanup
12121193 */
@@ -1238,15 +1219,8 @@ public void TestCreateObject()
12381219 Assert . IsTrue ( progressMonitor . IsComplete , "Failed to notify progress monitor callback of status update." ) ;
12391220 }
12401221
1241- using ( MemoryStream downloadStream = new MemoryStream ( ) )
1242- {
1243- provider . GetObject ( containerName , objectName , downloadStream ) ;
1244-
1245- downloadStream . Position = 0 ;
1246- StreamReader reader = new StreamReader ( downloadStream , Encoding . UTF8 ) ;
1247- string actualData = reader . ReadToEnd ( ) ;
1248- Assert . AreEqual ( fileData , actualData ) ;
1249- }
1222+ string actualData = ReadAllObjectText ( provider , containerName , objectName , Encoding . UTF8 ) ;
1223+ Assert . AreEqual ( fileData , actualData ) ;
12501224
12511225 /* Cleanup
12521226 */
@@ -1407,39 +1381,18 @@ public void TestCopyObject()
14071381 provider . CreateObject ( containerName , uploadStream , objectName , contentType ) ;
14081382 }
14091383
1410- using ( MemoryStream downloadStream = new MemoryStream ( ) )
1411- {
1412- provider . GetObject ( containerName , objectName , downloadStream ) ;
1413-
1414- downloadStream . Position = 0 ;
1415- StreamReader reader = new StreamReader ( downloadStream , Encoding . UTF8 ) ;
1416- string actualData = reader . ReadToEnd ( ) ;
1417- Assert . AreEqual ( fileData , actualData ) ;
1418- }
1384+ string actualData = ReadAllObjectText ( provider , containerName , objectName , Encoding . UTF8 ) ;
1385+ Assert . AreEqual ( fileData , actualData ) ;
14191386
14201387 provider . CopyObject ( containerName , objectName , containerName , copiedName ) ;
14211388
14221389 // make sure the item is available at the copied location
1423- using ( MemoryStream downloadStream = new MemoryStream ( ) )
1424- {
1425- provider . GetObject ( containerName , copiedName , downloadStream ) ;
1426-
1427- downloadStream . Position = 0 ;
1428- StreamReader reader = new StreamReader ( downloadStream , Encoding . UTF8 ) ;
1429- string actualData = reader . ReadToEnd ( ) ;
1430- Assert . AreEqual ( fileData , actualData ) ;
1431- }
1390+ actualData = ReadAllObjectText ( provider , containerName , copiedName , Encoding . UTF8 ) ;
1391+ Assert . AreEqual ( fileData , actualData ) ;
14321392
14331393 // make sure the original object still exists
1434- using ( MemoryStream downloadStream = new MemoryStream ( ) )
1435- {
1436- provider . GetObject ( containerName , objectName , downloadStream ) ;
1437-
1438- downloadStream . Position = 0 ;
1439- StreamReader reader = new StreamReader ( downloadStream , Encoding . UTF8 ) ;
1440- string actualData = reader . ReadToEnd ( ) ;
1441- Assert . AreEqual ( fileData , actualData ) ;
1442- }
1394+ actualData = ReadAllObjectText ( provider , containerName , objectName , Encoding . UTF8 ) ;
1395+ Assert . AreEqual ( fileData , actualData ) ;
14431396
14441397 // make sure the content type was not changed by the copy operation
14451398 Assert . AreEqual ( contentType , GetObjectContentType ( provider , containerName , objectName ) ) ;
@@ -1470,15 +1423,8 @@ public void TestMoveObject()
14701423 provider . CreateObject ( containerName , uploadStream , objectName ) ;
14711424 }
14721425
1473- using ( MemoryStream downloadStream = new MemoryStream ( ) )
1474- {
1475- provider . GetObject ( containerName , objectName , downloadStream ) ;
1476-
1477- downloadStream . Position = 0 ;
1478- StreamReader reader = new StreamReader ( downloadStream , Encoding . UTF8 ) ;
1479- string actualData = reader . ReadToEnd ( ) ;
1480- Assert . AreEqual ( fileData , actualData ) ;
1481- }
1426+ string actualData = ReadAllObjectText ( provider , containerName , objectName , Encoding . UTF8 ) ;
1427+ Assert . AreEqual ( fileData , actualData ) ;
14821428
14831429 provider . MoveObject ( containerName , objectName , containerName , movedName ) ;
14841430
@@ -1495,15 +1441,8 @@ public void TestMoveObject()
14951441 {
14961442 }
14971443
1498- using ( MemoryStream downloadStream = new MemoryStream ( ) )
1499- {
1500- provider . GetObject ( containerName , movedName , downloadStream ) ;
1501-
1502- downloadStream . Position = 0 ;
1503- StreamReader reader = new StreamReader ( downloadStream , Encoding . UTF8 ) ;
1504- string actualData = reader . ReadToEnd ( ) ;
1505- Assert . AreEqual ( fileData , actualData ) ;
1506- }
1444+ actualData = ReadAllObjectText ( provider , containerName , movedName , Encoding . UTF8 ) ;
1445+ Assert . AreEqual ( fileData , actualData ) ;
15071446
15081447 /* Cleanup
15091448 */
@@ -1529,15 +1468,8 @@ public void TestDeleteObject()
15291468 provider . CreateObject ( containerName , uploadStream , objectName ) ;
15301469 }
15311470
1532- using ( MemoryStream downloadStream = new MemoryStream ( ) )
1533- {
1534- provider . GetObject ( containerName , objectName , downloadStream ) ;
1535-
1536- downloadStream . Position = 0 ;
1537- StreamReader reader = new StreamReader ( downloadStream , Encoding . UTF8 ) ;
1538- string actualData = reader . ReadToEnd ( ) ;
1539- Assert . AreEqual ( fileData , actualData ) ;
1540- }
1471+ string actualData = ReadAllObjectText ( provider , containerName , objectName , Encoding . UTF8 ) ;
1472+ Assert . AreEqual ( fileData , actualData ) ;
15411473
15421474 provider . DeleteObject ( containerName , objectName ) ;
15431475
@@ -1832,5 +1764,17 @@ private static void CheckMetadataSubset(Dictionary<string, string> expected, Dic
18321764 foreach ( var pair in expected )
18331765 Assert . IsTrue ( actual . Contains ( pair ) , "Expected metadata item {{ {0} : {1} }} not found." , pair . Key , pair . Value ) ;
18341766 }
1767+
1768+ private static string ReadAllObjectText ( IObjectStorageProvider provider , string containerName , string objectName , Encoding encoding , int chunkSize = 65536 , Dictionary < string , string > headers = null , string region = null , bool verifyEtag = false , Action < long > progressUpdated = null , bool useInternalUrl = false , CloudIdentity identity = null )
1769+ {
1770+ using ( MemoryStream downloadStream = new MemoryStream ( ) )
1771+ {
1772+ provider . GetObject ( containerName , objectName , downloadStream , chunkSize , headers , region , verifyEtag , progressUpdated , useInternalUrl , identity ) ;
1773+
1774+ downloadStream . Position = 0 ;
1775+ StreamReader reader = new StreamReader ( downloadStream , encoding ) ;
1776+ return reader . ReadToEnd ( ) ;
1777+ }
1778+ }
18351779 }
18361780}
0 commit comments