bitcore-p2p
Version:
Interface to the bitcoin P2P network for bitcore
64 lines (53 loc) • 1.56 kB
JavaScript
;
var chai = require('chai');
var should = chai.should();
var Buffers = require('../lib/buffers');
describe('Buffers', function() {
var buffs = function buffs() {
var b = new Buffers();
b.push(new Buffer('0123', 'hex'));
b.push(new Buffer('4567', 'hex'));
b.push(new Buffer('89ab', 'hex'));
b.push(new Buffer('cdef', 'hex'));
return b;
};
it('set buffers to empty if "i" is greater than the total length', function() {
var b = buffs();
b.length.should.equal(8);
b.skip(100);
b.buffers.should.deep.equal([]);
b.length.should.equal(0);
});
it('set buffers to empty if "i" is equal than the total length', function() {
var b = buffs();
b.length.should.equal(8);
b.skip(8);
b.buffers.should.deep.equal([]);
b.length.should.equal(0);
});
it('do not skip if "i" is zero', function() {
var b = buffs();
b.skip(0);
b.length.should.equal(8);
});
it('remove part of the first buffer', function() {
var b = buffs();
b.skip(1);
b.length.should.equal(7);
b.buffers[0].should.deep.equal(new Buffer('23', 'hex'));
});
it('remove the first three buffers', function() {
var b = buffs();
b.skip(6);
b.length.should.equal(2);
should.not.exist(b.buffers[1]);
should.not.exist(b.buffers[2]);
should.not.exist(b.buffers[3]);
});
it('remove part of the fourth buffer', function() {
var b = buffs();
b.skip(7);
b.length.should.equal(1);
b.buffers[0].should.deep.equal(new Buffer('ef', 'hex'));
});
});