public void ReadMigrated_on_handled_empty_elements_succeeds(VersionedElementInfo elementInfo) { using var emptyElementStream = CreateEmptyElementStream(elementInfo); var(reader, info) = DataVersionManagement.ReadMigrated(emptyElementStream); using (reader) { GetVersion(reader).Should().Be(info.Version); } }
public void ReadMigrated_on_old_files_succeeds(string datafile) { using var stream = datafile.GetDatafileStream(BattleScribeVersion.V1x15); var(result, info) = DataVersionManagement.ReadMigrated(stream); using (result) { GetVersion(result).Should().Be(info.Version); } }
public void ReadRootElementInfo_succeeds(RootElement rootElement, string versionText) { var elementInfo = new VersionedElementInfo( rootElement, BattleScribeVersion.Parse(versionText)); using var stream = CreateEmptyElementStream(elementInfo); var result = DataVersionManagement.ReadRootElementInfo(stream); result.Should().Be(elementInfo); }
public void ReadRootElementInfo_doesnt_read_to_stream_end() { using var xmlStream = new MemoryStream(); using var writer = CreateNotClosingStreamWriter(xmlStream); writer.WriteLine("<roster battleScribeVersion='1.15'>"); for (var i = 0; i < 1000; i++) { writer.WriteLine(" <el attrib='value'>content</el>"); } writer.WriteLine("</roster>"); writer.Flush(); xmlStream.Position = 0; _ = DataVersionManagement.ReadRootElementInfo(xmlStream); xmlStream.Position .Should().BeLessThan(xmlStream.Length, "because massive streams aren't read to the end."); }