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()); }
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()); }
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()); }
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()); }
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()); }