示例#1
0
        private TreeNode CreateFileEntryTreeNode(BIFFileEntry tileEntry, int entryNumber)
        {
            var entryNode = new TreeNode(string.Format("File Entry Number - {0}", entryNumber));
            entryNode.Nodes.Add(new TreeNode(string.Format("Resource Locator: {0}", tileEntry.Locator)));
            entryNode.Nodes.Add(new TreeNode(string.Format("Resource Offset: {0}", tileEntry.Offset)));
            entryNode.Nodes.Add(new TreeNode(string.Format("Resource Size: {0}", tileEntry.Size)));
            entryNode.Nodes.Add(new TreeNode(string.Format("Resource Type: {0} ({1})", tileEntry.Type, ResourceTypesHelper.GetResourceStringFromType(tileEntry.Type))));
            entryNode.Nodes.Add(new TreeNode(string.Format("Resource Unknown: {0}", tileEntry.UnknownData)));

            return entryNode;
        }
示例#2
0
        public void should_create_file_entries()
        {
            var dummyEntry1 = new BIFFileEntry(0x1, 0x2, 0x3, 0x4, 0x5);
            var dummyEntry2 = new BIFFileEntry(0x2, 0x5, 0x3, 0x4, 0x5);
            var expectedOutput = new List<BIFFileEntry> { dummyEntry1, dummyEntry2 };

            var plugin = new BIFPlugin();
            var bifDescriptor = new BIFDescriptor();
            bifDescriptor.FileCount = 2;
            bifDescriptor.FileEntryOffset = 0;

            var entriesBytes = new byte[]
                                  {
                                    // Entry 1
                                    0x01, 0x00, 0x00, 0x00,    // Locator int32
                                    0x02, 0x00, 0x00, 0x00,    // Offset int32
                                    0x03, 0x00, 0x00, 0x00,    // Size int32
                                    0x04, 0x00,                // Type int16
                                    0x05, 0x00,                // Unknown int16
                                    // Entry 2
                                    0x02, 0x00, 0x00, 0x00,    // Locator int32
                                    0x05, 0x00, 0x00, 0x00,    // Offset int32
                                    0x03, 0x00, 0x00, 0x00,    // Size int32
                                    0x04, 0x00,                // Type int16
                                    0x05, 0x00,                // Unknown int16
                                  };

            var memoryStream = new MemoryStream(entriesBytes);
            var binaryReader = new BinaryReader(memoryStream);

            var createFileEntriesMethod = plugin.GetType().GetMethod("ReadFileEntries", BindingFlags.NonPublic | BindingFlags.Instance);
            var result = createFileEntriesMethod.Invoke(plugin, new object[] { binaryReader, bifDescriptor });

            Assert.That(result, Is.TypeOf(typeof(List<BIFFileEntry>)));

            CollectionAssert.AreEquivalent((List<BIFFileEntry>)result, expectedOutput);
        }