Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- /* load modules */
- var assert = require('assert');
- var Stream = require('stream');
- var BufferedStream = require('./buffered_stream');
- /* initialize streams */
- var input = new Stream();
- var buffer = new BufferedStream();
- input.pipe(buffer);
- /* enable buffering */
- buffer.pause();
- /* setup listeners */
- var count = 0;
- var tests = ['event1', 'event2', 'event3', 'event4', 'event5'];
- buffer.on('data', function(data) {
- assert.strictEqual(tests[count], data);
- ++count;
- });
- buffer.on('end', function() {
- assert.strictEqual(count, 5);
- });
- /* emit events */
- input.emit('data', tests[0]);
- input.emit('data', tests[1]);
- input.emit('data', tests[2]);
- assert.strictEqual(buffer.length, 3, 'Invalid buffer length');
- buffer.resume();
- assert.strictEqual(buffer.length, 0);
- input.emit('data', tests[3]);
- buffer.pause();
- input.emit('data', tests[4]);
- input.emit('end');
- assert.strictEqual(buffer.length, 1);
- buffer.resume();
- assert.strictEqual(buffer.length, 0);
- assert(!buffer.writable);
Add Comment
Please, Sign In to add comment