var logfmt = require('../logfmt'),
    through = require('through'),
    stream = require('stream'),
    assert = require('assert');

//avoid test bleeding
var logfmt = new logfmt;

suite('logfmt.streamStringify', function() {
  test("stringifies all the objects", function(done){
    var s = new stream.PassThrough({objectMode: true});

    s.push({hello: 'kitty'});
    s.push({foo: 'bar'});
    s.push({path: '/'});
    s.push(null);
    var matches = ['path=/\n', 'foo=bar\n', 'hello=kitty\n'];
    s.pipe(logfmt.streamStringify()).pipe(through(function(data){
      assert.equal(data, matches.pop())
    },function(){
      done()
    }))
  })

  test("accepts a delimiter", function(done){
    var s = new stream.PassThrough({objectMode: true});

    s.push({hello: 'kitty'});
    s.push({foo: 'bar'});
    s.push({path: '/'});
    s.push(null);
    var matches = ['path=/', 'foo=bar', 'hello=kitty'];
    s.pipe(logfmt.streamStringify({delimiter: ''})).pipe(through(function(data){
      assert.equal(data, matches.pop())
    },function(){
      done()
    }))
  })
})