You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							37 lines
						
					
					
						
							1018 B
						
					
					
				
			
		
		
	
	
							37 lines
						
					
					
						
							1018 B
						
					
					
				
 | 
						|
var stream = require('../lib/lazystream');
 | 
						|
var helper = require('./helper');
 | 
						|
 | 
						|
exports.pipe = {
 | 
						|
  readwrite: function(test) {
 | 
						|
    var expected = [ 'line1\n', 'line2\n' ];
 | 
						|
    var actual = [];
 | 
						|
    var readableInstantiated = false;
 | 
						|
    var writableInstantiated = false;
 | 
						|
 | 
						|
    test.expect(3);
 | 
						|
 | 
						|
    var readable = new stream.Readable(function() {
 | 
						|
      readableInstantiated = true;
 | 
						|
      return new helper.DummyReadable([].concat(expected));
 | 
						|
    });
 | 
						|
 | 
						|
    var writable = new stream.Writable(function() {
 | 
						|
      writableInstantiated = true;
 | 
						|
      return new helper.DummyWritable(actual);
 | 
						|
    });
 | 
						|
 | 
						|
    test.equal(readableInstantiated, false, 'DummyReadable should only be instantiated when it is needed');
 | 
						|
    test.equal(writableInstantiated, false, 'DummyWritable should only be instantiated when it is needed');
 | 
						|
 | 
						|
    writable.on('end', function() {
 | 
						|
      test.equal(actual.join(''), expected.join(''), 'Piping on demand streams should keep data intact');
 | 
						|
      test.done();
 | 
						|
    });
 | 
						|
    
 | 
						|
    readable.pipe(writable);
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
 |