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