99 lines
2.5 KiB
JavaScript
99 lines
2.5 KiB
JavaScript
|
var Code = require('code'); // assertion library
|
||
|
var Lab = require('lab');
|
||
|
var lab = exports.lab = Lab.script();
|
||
|
|
||
|
var describe = lab.describe;
|
||
|
var it = lab.it;
|
||
|
//var before = lab.before;
|
||
|
//var after = lab.after;
|
||
|
var expect = Code.expect;
|
||
|
|
||
|
var BufferWriter = require('../lib/bufferwriter');
|
||
|
|
||
|
|
||
|
describe('BufferWriter', function () {
|
||
|
|
||
|
it('should default to a 512 byte buffer', function (done) {
|
||
|
var out = new BufferWriter();
|
||
|
expect(out.buf).to.have.length(512);
|
||
|
done();
|
||
|
});
|
||
|
|
||
|
it('should default to a 512 byte buffer', function (done) {
|
||
|
var out = new BufferWriter(10);
|
||
|
expect(out.buf).to.have.length(10);
|
||
|
done();
|
||
|
});
|
||
|
|
||
|
|
||
|
it('#buffer with undefined should return writer', function (done) {
|
||
|
var out = new BufferWriter(10);
|
||
|
var o = out.buffer();
|
||
|
expect(o).to.be.instanceof(BufferWriter);
|
||
|
done();
|
||
|
});
|
||
|
|
||
|
it('#buffer should accept buffer as input', function (done) {
|
||
|
var out = new BufferWriter(10);
|
||
|
var o = out.buffer(new Buffer('abc'));
|
||
|
expect(o).to.be.instanceof(BufferWriter);
|
||
|
expect(o.buf.toString('utf8', 0, 3)).to.equal('abc');
|
||
|
done();
|
||
|
});
|
||
|
|
||
|
it('#buffer should not move forward on empty buffer', function (done) {
|
||
|
var out = new BufferWriter(10);
|
||
|
var o = out.buffer(new Buffer(0));
|
||
|
expect(o).to.be.instanceof(BufferWriter);
|
||
|
expect(out.tell()).to.equal(0);
|
||
|
done();
|
||
|
});
|
||
|
|
||
|
|
||
|
it('#buffer throw if input is not writer or buffer', function (done) {
|
||
|
var throws = function () {
|
||
|
var out = new BufferWriter(10);
|
||
|
out.buffer('asdf');
|
||
|
};
|
||
|
expect(throws).to.throw(Error, 'VariableError: not a buffer');
|
||
|
done();
|
||
|
});
|
||
|
|
||
|
|
||
|
it('#seek should throw on negative', function (done) {
|
||
|
var throws = function () {
|
||
|
var out = new BufferWriter(10);
|
||
|
out.seek(-1);
|
||
|
};
|
||
|
expect(throws).to.throw(Error, 'Negative pos not allowed');
|
||
|
|
||
|
done();
|
||
|
});
|
||
|
|
||
|
it('#seek should throw after length', function (done) {
|
||
|
var throws = function () {
|
||
|
var out = new BufferWriter(10);
|
||
|
out.seek(12);
|
||
|
};
|
||
|
expect(throws).to.throw(Error, 'Cannot seek after EOF. 12 > 10');
|
||
|
|
||
|
done();
|
||
|
});
|
||
|
|
||
|
it('#indexOf should return array with all occurances', function (done) {
|
||
|
var out = new BufferWriter();
|
||
|
out.buffer(new Buffer('helloworldfoobarfoo'));
|
||
|
var r = out.indexOf('foo');
|
||
|
expect(r).to.include([10, 16]);
|
||
|
done();
|
||
|
});
|
||
|
|
||
|
// it('#name withLength', function (done) {
|
||
|
// var out = new BufferWriter();
|
||
|
// out.name('hello', true);
|
||
|
// expect(o.tell()).to.equal(6);
|
||
|
// done();
|
||
|
// });
|
||
|
|
||
|
});
|