anchor.diff:      test('testSmall',testSmall);
       test('tesSomeChunks',tesSomeChunks);    
       test('testBig',testBig);
  -    test('testFileToGridFSToFile',testFileToGridFSToFile);   
  +    test('testFileToGridFSToFile',testFileToGridFSToFile);
  +    test('testExtraData', testExtraData);
     });
   }
positive.code:   }));
  }
  
  main(){
    initBsonPlatform();
    group('ChunkTransformer tests:', (){    
  
negative.code:     db.close();
    });
  }
  Future testInOut(List<int> data, GridFS gridFS, [Map extraData = null]) {
    var consumer = new MockConsumer();
    var out = new IOSink(consumer);
    return getInitialState(gridFS).then(expectAsync1((List<int> initialState){    
      var inputStream = new Stream.fromIterable([data]);
      GridIn input = gridFS.createFile(inputStream, "test");
      if (extraData != null) {
        input.extraData = extraData;
      }
      return input.save().then(expectAsync1((c) {
        return gridFS.findOne(where.eq("_id", input.id)).then(expectAsync1((GridOut gridOut) {
          expect(gridOut,isNotNull, reason: "Did not find file by Id");
          expect(input.id, gridOut.id, reason: "Ids not equal.");
          expect(GridFS.DEFAULT_CHUNKSIZE, gridOut.chunkSize, reason: "Chunk size not the same.");
          expect("test", gridOut.filename, reason: "Filename not equal");
          expect(input.extraData, gridOut.extraData);
          return gridOut.writeTo(out);
        })).then(expectAsync1((c){
          expect(data, orderedEquals(consumer.data));
  