Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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.");
        }