public void RomMetadataFeatures_CreateWithDataLengthButInsufficientDataBufferAndDeserialize_ThrowsEndOfStreamException() { var featuresMetadata = new RomMetadataFeatures(1); var expectedFeatures = featuresMetadata.Features; using (var stream = new System.IO.MemoryStream()) { using (var reader = new BinaryReader(stream)) { Assert.Throws <System.IO.EndOfStreamException>(() => featuresMetadata.Deserialize(reader)); } } }
public void RomMetadataFeatures_CreateWithZeroDataLength_DeserializeDoesNotChangeFeatures() { var featuresMetadata = new RomMetadataFeatures(0); var expectedFeatures = featuresMetadata.Features; using (var stream = new System.IO.MemoryStream()) { using (var reader = new BinaryReader(stream)) { featuresMetadata.Deserialize(reader); } } Assert.Equal(expectedFeatures, featuresMetadata.Features); }
public void RomMetadataFeatures_CreateWithAdditionalDataAndDeserialize_MovesToEndOfBuffer() { var dataSize = 10; var featuresMetadata = new RomMetadataFeatures((uint)dataSize); var expectedFeatures = ProgramFeatures.DefaultFeatures; using (var stream = new System.IO.MemoryStream()) { var data = Enumerable.Repeat((byte)0, dataSize); stream.Write(data.ToArray(), 0, dataSize); stream.Seek(0, System.IO.SeekOrigin.Begin); using (var reader = new BinaryReader(stream)) { featuresMetadata.Deserialize(reader); } } Assert.Equal(expectedFeatures, featuresMetadata.Features); }