dns-suite.js/node_modules/dns-js/test/consumer.test.js

84 lines
2.0 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 BufferConsumer = require('../lib/bufferconsumer');
var BufferWriter = require('../lib/bufferwriter');
describe('BufferConsumer', function () {
it('throw if no buffer as argument', function (done) {
var throws = function () {
return (new BufferConsumer());
};
expect(throws).to.throw(Error, 'Expected instance of Buffer');
done();
});
it('throw if seek before 0', function (done) {
var throws = function () {
var b = new Buffer(512);
var consumer = new BufferConsumer(b);
consumer.seek(-1);
};
expect(throws).to.throw(Error, 'Negative pos not allowed');
done();
});
it('throw if seek after end', function (done) {
var throws = function () {
var b = new Buffer(512);
var consumer = new BufferConsumer(b);
consumer.seek(515);
};
expect(throws).to.throw(Error, 'Cannot seek after EOF. 515 > 512');
done();
});
it('thow if slice after end', function (done) {
var throws = function () {
var b = new Buffer(512);
var consumer = new BufferConsumer(b);
consumer.seek(500);
consumer.slice(100);
};
expect(throws).to.throw(Error, 'Buffer overflow');
done();
});
it('#string with length', function (done) {
var b = new Buffer('qwertasdfg');
var consumer = new BufferConsumer(b);
var s = consumer.string('utf8', 3);
expect(s).to.equal('qwe');
s = consumer.string();
expect(s).to.equal('rtasdfg');
done();
});
});
describe('BufferWriter', function () {
it('#name on empty buffer', function (done) {
var out = new BufferWriter();
out.name('');
out.dump();
var consumer = new BufferConsumer(out.dump());
var s = consumer.name();
expect(s).to.equal('');
done();
});
});