84 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			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(); | ||
|  |   }); | ||
|  | }); |