Ejemplo n.º 1
0
        public void CreateBlock_InvalidChecksum()
        {
            var blocktype = DragonTapeBlockType.Header;
            var payload   = new byte[] { 66, 65, 82, 66, 65, 82, 32, 32, 2, 0, 0, 195, 80, 39, 16 };
            var checksum  = 0;

            var block = DragonTapeBlock.CreateBlock(blocktype, payload, 0, payload.Length, checksum);

            Assert.Equal(blocktype, block.BlockType);
            Assert.Equal(checksum, block.Checksum);
            Assert.Equal(payload.Length, block.Length);
            var data = block.Data;

            for (int i = 0; i < data.Length; i++)
            {
                Assert.Equal(payload[i], data[i]);
            }

            try
            {
                block.Validate();
                Assert.True(false, "This block has an invalid checksum and should not pass validation.");
            }
            catch (InvalidBlockChecksumException) {}
        }
Ejemplo n.º 2
0
        public void CreateBlock_FileHeader()
        {
            var blocktype = DragonTapeBlockType.Header;
            var payload   = new byte[] { 66, 65, 82, 66, 65, 82, 32, 32, 2, 0, 0, 195, 80, 39, 16 };
            var checksum  = 0x45;

            var block = DragonTapeBlock.CreateBlock(blocktype, payload, 0, payload.Length, checksum);

            Assert.Equal(blocktype, block.BlockType);
            Assert.Equal(checksum, block.Checksum);
            Assert.Equal(payload.Length, block.Length);
            var data = block.Data;

            for (int i = 0; i < payload.Length; i++)
            {
                Assert.Equal(payload[i], data[i]);
            }
            Assert.True(block is DragonTapeHeaderBlock);
            var header = (DragonTapeHeaderBlock)block;

            Assert.Equal("BARBAR", header.Filename);
            Assert.Equal(DragonFileType.MachineCode, header.FileType);
            Assert.False(header.IsAscii);
            Assert.False(header.IsGapped);
            Assert.Equal(10000, header.LoadAddress);
            Assert.Equal(50000, header.StartAddress);

            block.Validate();
        }