From 96c60ad7746258d164a20017be4832ddf7a541d9 Mon Sep 17 00:00:00 2001 From: Luciano Ciccariello Date: Sat, 30 May 2020 20:27:57 +0100 Subject: [PATCH] Add test to verify Idx.Write --- OpenKh.Tests/kh2/IdxTests.cs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/OpenKh.Tests/kh2/IdxTests.cs b/OpenKh.Tests/kh2/IdxTests.cs index e45a3a395..dbde07b37 100644 --- a/OpenKh.Tests/kh2/IdxTests.cs +++ b/OpenKh.Tests/kh2/IdxTests.cs @@ -37,6 +37,15 @@ public void ReadIdxEntry() Assert.Equal(5, entry.Length); } + [Fact] + public void WriteIdxEntry() => Helpers.AssertStream(CreateMockIdxStream(1, 2, 3, 4, 5), stream => + { + var outStream = new MemoryStream(); + Idx.Write(outStream, Idx.Read(stream)); + + return outStream; + }); + [Theory] [InlineData(0x3fff, false, false)] [InlineData(0x4000, true, false)] @@ -74,11 +83,11 @@ public void GiveRealNames(uint hash32, ushort hash16, string name) Assert.Equal(name, IdxName.Lookup(hash32, hash16)); } - private static List MockIdx(uint hash32, ushort hash16, ushort blockDescriptor, int offset, int length) + private static Stream CreateMockIdxStream(uint hash32, ushort hash16, ushort blockDescriptor, int offset, int length) { const int IdxFileCount = 1; - using var stream = new MemoryStream(0x14); + var stream = new MemoryStream(0x14); stream.Write(IdxFileCount); stream.Write(hash32); stream.Write(hash16); @@ -86,9 +95,12 @@ public void GiveRealNames(uint hash32, ushort hash16, string name) stream.Write(offset); stream.Write(length); - return Idx.Read(stream.SetPosition(0)); + return stream.SetPosition(0); } + private static List MockIdx(uint hash32, ushort hash16, ushort blockDescriptor, int offset, int length) => + CreateMockIdxStream(hash32, hash16, blockDescriptor, offset, length).Using(Idx.Read); + private static Idx.Entry MockIdxEntry(uint hash32, ushort hash16, ushort blockDescriptor, int offset, int length) => MockIdx(hash32, hash16, blockDescriptor, offset, length).First(); }