Пример #1
0
        public void InterfaceEquals_SameResultAsConcreteEquals_True()
        {
            var header1 = new MS2FileHeader(new MS2SizeHeader(1, 2, 3), 4, 5, CompressionType.Zlib);
            var header2 = new MS2FileHeader(new MS2SizeHeader(1, 2, 3), 4, 5, CompressionType.Zlib);

            Assert.AreEqual(header1.Equals(header2), ((IMS2FileHeader)header1).Equals(header2));
        }
Пример #2
0
        public async Task Write_Data_EqualsTrue()
        {
            MS2FileHeader expectedHeader = new MS2FileHeader(1, 2, 3, 4, 5, CompressionType.Zlib);

            var obj = new MS2FileHeaderMS2F();

            using var ms = new MemoryStream();
            await obj.WriteAsync(ms, expectedHeader);

            ms.Position = 0;

            using var br = new BinaryReader(ms);
            uint unk             = br.ReadUInt32();
            uint id              = br.ReadUInt32();
            var  compressionType = (CompressionType)br.ReadInt64();
            long offset          = br.ReadInt64();
            long encodedSize     = br.ReadInt64();
            long compressedSize  = br.ReadInt64();
            long size            = br.ReadInt64();

            var actualUnk    = unk;
            var actualHeader = new MS2FileHeader(encodedSize, compressedSize, size, id, offset, compressionType);

            Assert.AreEqual(0u, actualUnk);
            Assert.AreEqual(expectedHeader, actualHeader);
        }
Пример #3
0
        public void GetHashCode_DifferentValues_False()
        {
            var notExpected = new MS2FileHeader(new MS2SizeHeader(1, 2, 3), 4, 5, CompressionType.Zlib);

            var actual = new MS2FileHeader(new MS2SizeHeader(1, 2, 3), 4, 6, CompressionType.Zlib);

            Assert.AreNotEqual(notExpected.GetHashCode(), actual.GetHashCode());
        }
Пример #4
0
        public void Equals_SameReference_True()
        {
            var expected = new MS2FileHeader(new MS2SizeHeader(1, 2, 3), 4, 5, CompressionType.Zlib);

            var actual = expected;

            Assert.AreEqual(expected, actual);
        }
Пример #5
0
        public void GetHashCode_SameValues_True()
        {
            var expected = new MS2FileHeader(new MS2SizeHeader(1, 2, 3), 4, 5, CompressionType.Zlib);

            var actual = new MS2FileHeader(new MS2SizeHeader(1, 2, 3), 4, 5, CompressionType.Zlib);

            Assert.AreEqual(expected.GetHashCode(), actual.GetHashCode());
        }
Пример #6
0
        public void Equals_SameValuesDifferentCompressionType_False()
        {
            var notExpected = new MS2FileHeader(new MS2SizeHeader(1, 2, 3), 4, 5, CompressionType.Zlib);

            var actual = new MS2FileHeader(new MS2SizeHeader(1, 2, 3), 4, 5, CompressionType.Png);

            Assert.AreNotEqual(notExpected, actual);
        }
Пример #7
0
        public void Dispose_EncapsulatedMemoryMappedFile_DoesNotThrowObjectDisposedException()
        {
            var expectedBytes = new byte[] { 0x30, 0x60 };
            var archiveMock   = new Mock <IMS2Archive>(MockBehavior.Strict);
            var mappedFile    = MemoryMappedFile.CreateNew(nameof(Dispose_EncapsulatedMemoryMappedFile_DoesNotThrowObjectDisposedException), expectedBytes.Length, MemoryMappedFileAccess.ReadWrite, MemoryMappedFileOptions.None, HandleInheritability.None);
            var info          = new MS2FileInfo("1", "testfile");
            var header        = new MS2FileHeader(expectedBytes.Length, 1, 0);
            var file          = new MS2File(archiveMock.Object, mappedFile, info, header, false);

            file.Dispose();

            mappedFile.CreateViewAccessor();
        }
Пример #8
0
        public void Dispose_EncapsulatedStream_ThrowsObjectDisposedException()
        {
            var expectedBytes = new byte[] { 0x30, 0x60 };
            var archiveMock   = new Mock <IMS2Archive>(MockBehavior.Strict);
            var stream        = new MemoryStream(expectedBytes);
            var info          = new MS2FileInfo("1", "testfile");
            var header        = new MS2FileHeader(expectedBytes.Length, 1, 0);
            var file          = new MS2File(archiveMock.Object, stream, info, header, false);

            file.Dispose();

            stream.ReadByte();
        }
Пример #9
0
        public async Task Dispose_GetStreamForArchivingAsync_ThrowsObjectDisposedException()
        {
            var expectedBytes = new byte[] { 0x30, 0x60 };
            var archiveMock   = new Mock <IMS2Archive>(MockBehavior.Strict);
            var stream        = new MemoryStream(expectedBytes);
            var info          = new MS2FileInfo("1", "testfile");
            var header        = new MS2FileHeader(expectedBytes.Length, 1, 0);
            var file          = new MS2File(archiveMock.Object, stream, info, header, false);

            file.Dispose();

            await file.GetStreamForArchivingAsync();
        }
Пример #10
0
        public async Task Read_FromWrite_EqualsTrue()
        {
            MS2FileHeader expectedHeader = new MS2FileHeader(1, 2, 3, 4, 5, CompressionType.Zlib);
            var           obj            = new MS2FileHeaderMS2F();

            using var ms = new MemoryStream();
            await obj.WriteAsync(ms, expectedHeader);

            ms.Position = 0;

            var actualHeader = await obj.ReadAsync(ms);

            Assert.AreEqual(expectedHeader, actualHeader);
        }
Пример #11
0
        public Task <IMS2FileHeader> ReadAsync(Stream stream)
        {
            using var br = new BinaryReader(stream, Encoding.ASCII, true);

            var  compressionType = (CompressionType)br.ReadUInt32();
            uint id             = br.ReadUInt32();
            uint encodedSize    = br.ReadUInt32();
            long compressedSize = br.ReadInt64();
            long size           = br.ReadInt64();
            long offset         = br.ReadInt64();

            IMS2FileHeader fileHeader = new MS2FileHeader(encodedSize, compressedSize, size, id, offset, compressionType);

            return(Task.FromResult(fileHeader));
        }
Пример #12
0
        public Task <IMS2FileHeader> ReadAsync(Stream stream)
        {
            using var br = new BinaryReader(stream, Encoding.ASCII, true);

            uint unk             = br.ReadUInt32(); // TODO: unknown/unused?
            uint id              = br.ReadUInt32();
            var  compressionType = (CompressionType)br.ReadInt64();
            long offset          = br.ReadInt64();
            long encodedSize     = br.ReadInt64();
            long compressedSize  = br.ReadInt64();
            long size            = br.ReadInt64();

            Debug.Assert(unk == 0, "unk is not 0. unk=" + unk);

            IMS2FileHeader fileHeader = new MS2FileHeader(encodedSize, compressedSize, size, id, offset, compressionType);

            return(Task.FromResult(fileHeader));
        }
Пример #13
0
        public async Task Read_Stream_EqualsTrue()
        {
            MS2FileHeader expectedHeader = new MS2FileHeader(1, 2, 3, 4, 5, CompressionType.Zlib);

            using var ms = new MemoryStream();
            using var bw = new BinaryWriter(ms);
            bw.Write((uint)expectedHeader.CompressionType);
            bw.Write(expectedHeader.Id);
            bw.Write((uint)expectedHeader.Size.EncodedSize);
            bw.Write(expectedHeader.Size.CompressedSize);
            bw.Write(expectedHeader.Size.Size);
            bw.Write(expectedHeader.Offset);
            ms.Position = 0;

            var obj          = new MS2FileHeaderNS2F();
            var actualHeader = await obj.ReadAsync(ms);

            Assert.AreEqual(expectedHeader, actualHeader);
        }