Guest User

Untitled

a guest
Dec 10th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. 'use strict';
  2.  
  3. /* load modules */
  4. var assert = require('assert');
  5. var Stream = require('stream');
  6. var BufferedStream = require('./buffered_stream');
  7.  
  8. /* initialize streams */
  9. var input = new Stream();
  10. var buffer = new BufferedStream();
  11. input.pipe(buffer);
  12.  
  13. /* enable buffering */
  14. buffer.pause();
  15.  
  16. /* setup listeners */
  17. var count = 0;
  18. var tests = ['event1', 'event2', 'event3', 'event4', 'event5'];
  19.  
  20. buffer.on('data', function(data) {
  21. assert.strictEqual(tests[count], data);
  22. ++count;
  23. });
  24.  
  25. buffer.on('end', function() {
  26. assert.strictEqual(count, 5);
  27. });
  28.  
  29. /* emit events */
  30. input.emit('data', tests[0]);
  31. input.emit('data', tests[1]);
  32. input.emit('data', tests[2]);
  33. assert.strictEqual(buffer.length, 3, 'Invalid buffer length');
  34.  
  35. buffer.resume();
  36. assert.strictEqual(buffer.length, 0);
  37.  
  38. input.emit('data', tests[3]);
  39. buffer.pause();
  40. input.emit('data', tests[4]);
  41.  
  42. input.emit('end');
  43. assert.strictEqual(buffer.length, 1);
  44. buffer.resume();
  45.  
  46. assert.strictEqual(buffer.length, 0);
  47.  
  48. assert(!buffer.writable);
Add Comment
Please, Sign In to add comment