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