@@ -233,7 +233,6 @@ public void Deserialize()
233233 }
234234 }
235235
236- [ Ignore ( "Renable after implementing backwards compatibility for older versions" ) ]
237236 [ Test ]
238237 public void Deserialize_File_Version_3 ( )
239238 {
@@ -260,7 +259,7 @@ public void Deserialize_File_Version_4()
260259
261260 private void VerifySampleValues_Version3 ( BlobDestinationCheckpointDetails data )
262261 {
263- Assert . AreEqual ( 3 , data . Version ) ;
262+ Assert . AreEqual ( 4 , data . Version ) ;
264263 Assert . IsTrue ( data . IsBlobTypeSet ) ;
265264 Assert . AreEqual ( DefaultBlobType , data . BlobType ) ;
266265 Assert . AreEqual ( true , data . IsContentTypeSet ) ;
@@ -305,9 +304,11 @@ private void VerifySampleValues_Version4(BlobDestinationCheckpointDetails data)
305304 }
306305
307306 [ Test ]
308- public void Deserialize_IncorrectSchemaVersion ( )
307+ [ TestCase ( 1 ) ]
308+ [ TestCase ( 2 ) ]
309+ [ TestCase ( 5 ) ]
310+ public void Deserialize_IncorrectSchemaVersion ( int incorrectSchemaVersion )
309311 {
310- int incorrectSchemaVersion = 1 ;
311312 BlobDestinationCheckpointDetails data = CreatePreserveValues ( ) ;
312313 data . Version = incorrectSchemaVersion ;
313314
@@ -318,5 +319,36 @@ public void Deserialize_IncorrectSchemaVersion()
318319 ( ) => BlobDestinationCheckpointDetails . Deserialize ( dataStream ) ,
319320 new ArgumentException ( $ "The checkpoint file schema version { incorrectSchemaVersion } is not supported by this version of the SDK.") ) ;
320321 }
322+
323+ [ Test ]
324+ public void RoundTrip_Version_4 ( )
325+ {
326+ BlobDestinationCheckpointDetails original = CreateSetSampleValues ( ) ;
327+ using MemoryStream serialized = new ( ) ;
328+ original . Serialize ( serialized ) ;
329+ serialized . Position = 0 ;
330+ BlobDestinationCheckpointDetails deserialized = BlobDestinationCheckpointDetails . Deserialize ( serialized ) ;
331+
332+ Assert . AreEqual ( DataMovementBlobConstants . DestinationCheckpointDetails . SchemaVersion , deserialized . Version ) ;
333+ Assert . AreEqual ( original . Version , deserialized . Version ) ;
334+ Assert . AreEqual ( original . IsBlobTypeSet , deserialized . IsBlobTypeSet ) ;
335+ Assert . AreEqual ( original . BlobType , deserialized . BlobType ) ;
336+ Assert . AreEqual ( original . IsContentTypeSet , deserialized . IsContentTypeSet ) ;
337+ Assert . AreEqual ( original . ContentTypeBytes , deserialized . ContentTypeBytes ) ;
338+ Assert . AreEqual ( original . IsContentEncodingSet , deserialized . IsContentEncodingSet ) ;
339+ Assert . AreEqual ( original . ContentEncodingBytes , deserialized . ContentEncodingBytes ) ;
340+ Assert . AreEqual ( original . IsContentLanguageSet , deserialized . IsContentLanguageSet ) ;
341+ Assert . AreEqual ( original . ContentLanguageBytes , deserialized . ContentLanguageBytes ) ;
342+ Assert . AreEqual ( original . IsContentDispositionSet , deserialized . IsContentDispositionSet ) ;
343+ Assert . AreEqual ( original . ContentDispositionBytes , deserialized . ContentDispositionBytes ) ;
344+ Assert . AreEqual ( original . IsCacheControlSet , deserialized . IsCacheControlSet ) ;
345+ Assert . AreEqual ( original . CacheControlBytes , deserialized . CacheControlBytes ) ;
346+ Assert . AreEqual ( original . IsAccessTierSet , deserialized . IsAccessTierSet ) ;
347+ Assert . AreEqual ( original . AccessTierValue , deserialized . AccessTierValue ) ;
348+ Assert . AreEqual ( original . IsMetadataSet , deserialized . IsMetadataSet ) ;
349+ Assert . AreEqual ( original . Metadata , deserialized . Metadata ) ;
350+ Assert . AreEqual ( original . PreserveTags , deserialized . PreserveTags ) ;
351+ Assert . AreEqual ( original . Tags , deserialized . Tags ) ;
352+ }
321353 }
322354}
0 commit comments