UNPKG

compound-binary-file-js

Version:

This is an implementation of [Compound Binary File v.3](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cfb/53989ce4-7b05-4f8d-829b-d08d6148375b) \ Allows reading existing files, creation of the/write operation

44 lines (40 loc) 1.7 kB
import {Header} from "../src/Header"; import {SimpleDataview} from "../src/dataview/SimpleDataview"; import {initializedWidth} from "../src/utils"; import {Sectors} from "../src/Sectors"; import { expect } from "chai"; import * as Long from "long"; import "../src/Long" import {SimpleSector} from "../src/dataview/SimpleSector"; import {DIFATSector} from "../src/dataview/DIFATSector"; import { mock, when } from "ts-mockito"; import {FixedSizeChunkedDataview} from "../src/dataview/FixedSizeChunkedDataview"; function difatSector() { const header: Header = Header.empty(new SimpleDataview(initializedWidth(512, 0))); return new Sectors(new FixedSizeChunkedDataview(Header.SECTOR_SHIFT_VERSION_3_INT), header).allocateDIFAT(); } describe('DIFAT test', () => { it('register new FAT sector', () => { const sector = difatSector(); for (let i = 0; i < 127; i++) { sector.registerFatSector(i); } expect(() => sector.registerFatSector(127)).to.throw(); }); it('retrieve registered FAT sector', () => { const data = initializedWidth(Header.SECTOR_SHIFT_VERSION_3_INT, 0); for (let i = 0; i < 128; i++) { data.splice(i * 4, 4, ...Long.fromValue(i).to4BytesLE()); } const sector = new DIFATSector(SimpleSector.from(new SimpleDataview(data), 0)); expect(127).eq(sector.getRegisteredFatSectors().length); }); it('register DIFAT sector', () => { const sector = difatSector(); sector.registerNextDifatSector(1); expect(sector.subView(508).getData()).to.deep.eq(Long.fromValue(1).to4BytesLE()); }); });