123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
-
- var stream = require('../lib/lazystream');
- var fs = require('fs');
- var tmpDir = 'test/tmp/';
- var readFile = 'test/data.md';
- var writeFile = tmpDir + 'data.md';
-
- exports.fs = {
- readwrite: function(test) {
- var readfd, writefd;
-
- var readable = new stream.Readable(function() {
- return fs.createReadStream(readFile)
- .on('open', function(fd) {
- readfd = fd;
- })
- .on('close', function() {
- readfd = undefined;
- step();
- });
- });
-
- var writable = new stream.Writable(function() {
- return fs.createWriteStream(writeFile)
- .on('open', function(fd) {
- writefd = fd;
- })
- .on('close', function() {
- writefd = undefined;
- step();
- });
- });
-
- test.expect(3);
-
- test.equal(readfd, undefined, 'Input file should not be opened until read');
- test.equal(writefd, undefined, 'Output file should not be opened until write');
-
- if (!fs.existsSync(tmpDir)) {
- fs.mkdirSync(tmpDir);
- }
- if (fs.existsSync(writeFile)) {
- fs.unlinkSync(writeFile);
- }
-
- readable.on('end', function() { step(); });
- writable.on('end', function() { step(); });
-
- var steps = 0;
- function step() {
- steps += 1;
- if (steps == 4) {
- var input = fs.readFileSync(readFile);
- var output = fs.readFileSync(writeFile);
-
- test.ok(input >= output && input <= output, 'Should be equal');
-
- fs.unlinkSync(writeFile);
- fs.rmdirSync(tmpDir);
-
- test.done();
- }
- };
-
- readable.pipe(writable);
- }
- };
-
|