"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TestSyncReader = exports.TestAsyncReader = exports.EPERM_ERRNO = exports.buildFakeDirectoryEntry = exports.buildFakeFileEntry = void 0;
const sinon = require("sinon");
const fs_macchiato_1 = require("../../../fs.macchiato");
function buildFakeFileEntry(entry) {
    return Object.assign({ name: 'fake.txt', path: 'directory/fake.txt', dirent: new fs_macchiato_1.Dirent({ name: 'fake.txt' }) }, entry);
}
exports.buildFakeFileEntry = buildFakeFileEntry;
function buildFakeDirectoryEntry(entry) {
    return Object.assign({ name: 'fake', path: 'directory/fake', dirent: new fs_macchiato_1.Dirent({ name: 'fake', isFile: false, isDirectory: true }) }, entry);
}
exports.buildFakeDirectoryEntry = buildFakeDirectoryEntry;
exports.EPERM_ERRNO = {
    name: 'EPERM',
    code: 'EPERM',
    message: 'EPERM'
};
class TestAsyncReader {
    constructor() {
        this.read = sinon.stub();
        this.destroy = sinon.stub();
        this.onError = sinon.stub();
        this.onEntry = sinon.stub();
        this.onEnd = sinon.stub();
    }
}
exports.TestAsyncReader = TestAsyncReader;
class TestSyncReader {
    constructor() {
        this.read = sinon.stub();
    }
}
exports.TestSyncReader = TestSyncReader;