var test = require('tap').test,
_fs = require('fs'),
walkdir = require('../walkdir.js');

var expectedPaths = {};

test('fs option',function(t){
  var paths = [];

  var emitter = walkdir(__dirname+'/dir/foo',{fs:
    {
      readdir: function () {
        var cb = arguments[arguments.length - 1];
        cb(null, []);
      },
      lstat: function (file) {
        var cb = arguments[arguments.length - 1];
        return _fs.lstat(__dirname, cb);
      }
    }
  },function(path,stat,depth){
    t.fail('there should be no files emitted');
  });

  emitter.on('end',function(){
     var expected = Object.keys(expectedPaths);
     t.ok(expected.length == paths.length, 'expected and emitted paths should have the same length');
     paths.forEach(function(v){ 
          t.ok(expected.indexOf(v) > -1,'all expected files should be in paths');
     });

     t.end();
  });
});
