public void SkipTest()
        {
            NbtReader reader = new NbtReader(MakeTest());

            reader.ReadToFollowing(); // at root
            reader.ReadToFollowing(); // at first
            reader.ReadToFollowing(); // at second
            reader.ReadToFollowing(); // at third-comp
            reader.ReadToFollowing(); // at inComp1
            Assert.AreEqual(reader.TagName, "inComp1");
            Assert.AreEqual(reader.Skip(), 2);
            Assert.AreEqual(reader.TagName, "fourth-list");
            Assert.AreEqual(reader.Skip(), 10);
            Assert.IsFalse(reader.ReadToFollowing());
        }
Beispiel #2
0
        public void ErrorTest()
        {
            var root = new NbtCompound("root");

            byte[] testData = new NbtFile(root).SaveToBuffer(NbtCompression.None);

            // creating NbtReader without a stream, or with a non-readable stream
            Assert.Throws <ArgumentNullException>(() => new NbtReader(null));
            Assert.Throws <ArgumentException>(() => new NbtReader(new NonReadableStream()));

            // corrupt the data
            testData[0] = 123;
            var reader = new NbtReader(new MemoryStream(testData));

            // attempt to use ReadValue when not at value
            Assert.Throws <InvalidOperationException>(() => reader.ReadValue());
            reader.CacheTagValues = true;
            Assert.Throws <InvalidOperationException>(() => reader.ReadValue());

            // attempt to read a corrupt stream
            Assert.Throws <NbtFormatException>(() => reader.ReadToFollowing());

            // make sure we've properly entered the error state
            Assert.IsTrue(reader.IsInErrorState);
            Assert.IsFalse(reader.HasName);
            Assert.Throws <InvalidReaderStateException>(() => reader.ReadToFollowing());
            Assert.Throws <InvalidReaderStateException>(() => reader.ReadListAsArray <int>());
            Assert.Throws <InvalidReaderStateException>(() => reader.ReadToNextSibling());
            Assert.Throws <InvalidReaderStateException>(() => reader.ReadToDescendant("derp"));
            Assert.Throws <InvalidReaderStateException>(() => reader.ReadAsTag());
            Assert.Throws <InvalidReaderStateException>(() => reader.Skip());
        }
Beispiel #3
0
        public void SkipTest()
        {
            var reader = new NbtReader(TestFiles.MakeReaderTest());

            reader.ReadToFollowing(); // at root
            reader.ReadToFollowing(); // at first
            reader.ReadToFollowing(); // at second
            reader.ReadToFollowing(); // at third-comp
            reader.ReadToFollowing(); // at inComp1
            Assert.AreEqual("inComp1", reader.TagName);
            Assert.AreEqual(2, reader.Skip());
            Assert.AreEqual("fourth-list", reader.TagName);
            Assert.AreEqual(11, reader.Skip());
            Assert.IsFalse(reader.ReadToFollowing());
            Assert.AreEqual(0, reader.Skip());
        }
Beispiel #4
0
 public void NonSeekableStreamSkip2()
 {
     using (var ms = TestFiles.MakeReaderTest()) {
         using (var nss = new NonSeekableStream(ms)) {
             var reader = new NbtReader(nss);
             reader.ReadToFollowing();
             reader.Skip();
         }
     }
 }
Beispiel #5
0
 public void NonSeekableStreamSkip1()
 {
     byte[] fileBytes = File.ReadAllBytes("TestFiles/bigtest.nbt");
     using (var ms = new MemoryStream(fileBytes)) {
         using (var nss = new NonSeekableStream(ms)) {
             var reader = new NbtReader(nss);
             reader.ReadToFollowing();
             reader.Skip();
         }
     }
 }
 public void NonSeekableStreamSkip2()
 {
     using (var ms = TestFiles.MakeReaderTest())
     {
         using (var nss = new NonSeekableStream(ms))
         {
             var reader = new NbtReader(nss);
             reader.ReadToFollowing();
             reader.Skip();
         }
     }
 }
 public void NonSeekableStreamSkip1()
 {
     byte[] fileBytes = File.ReadAllBytes("TestFiles/bigtest.nbt");
     using (var ms = new MemoryStream(fileBytes))
     {
         using (var nss = new NonSeekableStream(ms))
         {
             var reader = new NbtReader(nss);
             reader.ReadToFollowing();
             reader.Skip();
         }
     }
 }
        public void ErrorTest()
        {
            var root = new NbtCompound("root");
            byte[] testData = new NbtFile(root).SaveToBuffer(NbtCompression.None);

            // creating NbtReader without a stream, or with a non-readable stream
            Assert.Throws<ArgumentNullException>(() => new NbtReader(null));
            Assert.Throws<ArgumentException>(() => new NbtReader(new NonReadableStream()));

            // corrupt the data
            testData[0] = 123;
            var reader = new NbtReader(new MemoryStream(testData));

            // attempt to use ReadValue when not at value
            Assert.Throws<InvalidOperationException>(() => reader.ReadValue());
            reader.CacheTagValues = true;
            Assert.Throws<InvalidOperationException>(() => reader.ReadValue());

            // attempt to read a corrupt stream
            Assert.Throws<NbtFormatException>(() => reader.ReadToFollowing());

            // make sure we've properly entered the error state
            Assert.True(reader.IsInErrorState);
            Assert.False(reader.HasName);
            Assert.Throws<InvalidReaderStateException>(() => reader.ReadToFollowing());
            Assert.Throws<InvalidReaderStateException>(() => reader.ReadListAsArray<int>());
            Assert.Throws<InvalidReaderStateException>(() => reader.ReadToNextSibling());
            Assert.Throws<InvalidReaderStateException>(() => reader.ReadToDescendant("derp"));
            Assert.Throws<InvalidReaderStateException>(() => reader.ReadAsTag());
            Assert.Throws<InvalidReaderStateException>(() => reader.Skip());
        }
 public void SkipTest()
 {
     var reader = new NbtReader(TestFiles.MakeReaderTest());
     reader.ReadToFollowing(); // at root
     reader.ReadToFollowing(); // at first
     reader.ReadToFollowing(); // at second
     reader.ReadToFollowing(); // at third-comp
     reader.ReadToFollowing(); // at inComp1
     Assert.Equal("inComp1", reader.TagName);
     Assert.Equal(2, reader.Skip());
     Assert.Equal("fourth-list", reader.TagName);
     Assert.Equal(11, reader.Skip());
     Assert.False(reader.ReadToFollowing());
     Assert.Equal(0, reader.Skip());
 }
Beispiel #10
0
 public void SkipTest()
 {
     var reader = new NbtReader(TestFiles.MakeReaderTest());
     reader.ReadToFollowing(); // at root
     reader.ReadToFollowing(); // at first
     reader.ReadToFollowing(); // at second
     reader.ReadToFollowing(); // at third-comp
     reader.ReadToFollowing(); // at inComp1
     Assert.AreEqual(reader.TagName, "inComp1");
     Assert.AreEqual(reader.Skip(), 2);
     Assert.AreEqual(reader.TagName, "fourth-list");
     Assert.AreEqual(reader.Skip(), 10);
     Assert.IsFalse(reader.ReadToFollowing());
 }