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();
 | ||
|  |   // });
 | ||
|  | 
 | ||
|  | }); |