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.

379 lines
10 KiB

var should = require('should');
var fbuffers = require("../flexbuffer.js");
describe("tests" ,function(){
afterEach(function(done){
done();
});
it ("write empty", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write();
flexbuffer.getBufferReference().length.should.equal(0);
done();
});
it ("simple write string", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.getBufferReference().length.should.equal(3);
flexbuffer.getBufferReference().toString().should.equal("aaa")
done();
});
it ("varios write string", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.write("ccc");
flexbuffer.getBufferReference().length.should.equal(9);
flexbuffer.getBufferReference().toString().should.equal("aaabbbccc")
done();
});
it ("varios write buffer", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write(new Buffer("aaa"));
flexbuffer.write(new Buffer("bbb"));
flexbuffer.write(new Buffer("ccc"));
flexbuffer.getBufferReference().length.should.equal(9);
flexbuffer.getBufferReference().toString().should.equal("aaabbbccc")
done();
});
it ("write number", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write(4545);
flexbuffer.write(5656);
flexbuffer.getBufferReference().length.should.equal(8);
flexbuffer.getBufferReference().toString().should.equal("45455656")
done();
});
it ("reset", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.write("ccc");
flexbuffer.reset();
flexbuffer.getBufferReference().length.should.equal(0);
done();
});
it ("rewind", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.write("ccc");
flexbuffer.rewind();
flexbuffer.getBufferReference().length.should.equal(0);
done();
});
it ("resizeBuffer de mas bytes", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.write("ccc");
flexbuffer.resizeBuffer(60);
flexbuffer.getBufferReference().length.should.equal(9);
flexbuffer.getBufferReference().toString().should.equal("aaabbbccc")
done();
});
it ("resizeBuffer menor al length", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.resizeBuffer(2);
flexbuffer.getBufferReference().length.should.equal(6);
flexbuffer.write("ccc");
flexbuffer.getBufferReference().toString().should.equal("aaabbbccc")
done();
});
it ("getBuffer", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.getBuffer().length.should.equal(6);
flexbuffer.getBuffer().toString().should.equal("aaabbb")
done();
});
it ("getBufferReference", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.getBufferReference().length.should.equal(6);
flexbuffer.getBufferReference().toString().should.equal("aaabbb")
done();
});
it ("getBufferReference validacion de referencia", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.getBufferReference().write("c", 0);
flexbuffer.getBufferReference().toString().should.equal("caabbb");
done();
});
it ("getBuffer validacion de copia", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.getBuffer().write("c", 0);
flexbuffer.getBufferReference().toString().should.equal("aaabbb");
done();
});
it ("getBuffer equal getBufferReference", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.getBuffer().toString().should.equal(flexbuffer.getBufferReference().toString());
done();
});
it ("delete un caracter", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.delete(0,1);
flexbuffer.getBuffer().toString().should.equal("aabbb");
done();
});
it ("delete atras", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.delete(3,6);
flexbuffer.getBuffer().toString().should.equal("aaa");
done();
});
it ("delete medio", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.write("ccc");
flexbuffer.delete(3,6);
flexbuffer.getBuffer().toString().should.equal("aaaccc");
done();
});
it ("delete adelante", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaaaaa");
flexbuffer.write("bbb");
flexbuffer.delete(0,6);
flexbuffer.getBuffer().toString().should.equal("bbb");
done();
});
it ("delete todo el buffer", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.delete(0,6);
flexbuffer.getBufferReference().length.should.equal(0);
done();
});
it ("getLength", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.getLength().should.equal(6);
done();
});
it ("getLength after reset", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.getLength().should.equal(6);
flexbuffer.reset();
flexbuffer.getLength().should.equal(0);
done();
});
it ("deleteAndGet atras", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
var buffer = flexbuffer.deleteAndGet(3,6);
flexbuffer.getBuffer().toString().should.equal("aaa");
buffer.toString().should.equal("bbb");
done();
});
it ("deleteAndGet medio", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
flexbuffer.write("ccc");
var buffer = flexbuffer.deleteAndGet(3,6);
flexbuffer.getBuffer().toString().should.equal("aaaccc");
buffer.toString().should.equal("bbb");
done();
});
it ("deleteAndGet adelante", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaaaaa");
flexbuffer.write("bbb");
var buffer = flexbuffer.deleteAndGet(0,6);
flexbuffer.getBuffer().toString().should.equal("bbb");
buffer.toString().should.equal("aaaaaa");
done();
});
it ("deleteAndGet todo el buffer", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
var buffer = flexbuffer.deleteAndGet(0,6);
flexbuffer.getBufferReference().length.should.equal(0);
buffer.toString().should.equal("aaabbb");
done();
});
it ("deleteAndGet un caracter", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("aaa");
flexbuffer.write("bbb");
var buffer = flexbuffer.deleteAndGet(0,1);
flexbuffer.getBuffer().toString().should.equal("aabbb");
buffer.toString().should.equal("a");
done();
});
it ("write string with \\n", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("Sab0tcj0lM+00000109&tms=1348070338843&tmsjson=2012-09-19T15:58:58.843Z&sid=bbbbbbbbbbbb&message=lelelele&consumer=0&consumidor=0\n");
flexbuffer.getBufferReference().length.should.equal(129);
flexbuffer.getBufferReference().toString().length.should.equal(129);
flexbuffer.getBufferReference().toString().should.equal("Sab0tcj0lM+00000109&tms=1348070338843&tmsjson=2012-09-19T15:58:58.843Z&sid=bbbbbbbbbbbb&message=lelelele&consumer=0&consumidor=0\n");
done();
});
it ("test write caracateres especiales", function (done) {
var str = "\u00bd + \u00bc = \u00be";
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write(str);
var buffer = new Buffer(str);
flexbuffer.getBuffer().length.should.equal(buffer.length);
done();
});
it ("write buffer con caracteres especiales", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
var buffer = new Buffer("\u00bd + \u00bc = \u00be");
flexbuffer.write(buffer);
flexbuffer.getBuffer().length.should.equal(buffer.length);
done();
});
it ("create buffer with initial length", function (done) {
var flexbuffer = new fbuffers.FlexBuffer(50);
flexbuffer.getBufferLength().should.equal(50);
done();
});
it ("exception con start y end erroneos", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("123456789");
try {
flexbuffer.deleteAndGet(0,10);
} catch (e) {
done();
return;
}
should.fail('expected an error!');
});
it ("exception con start negativo", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("123456789");
try {
flexbuffer.deleteAndGet(-1,10);
} catch (e) {
done();
return;
}
should.fail('expected an error!');
});
it ("exception con end negativo", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("123456789");
try {
flexbuffer.deleteAndGet(0,-1);
} catch (e) {
done();
return;
}
should.fail('expected an error!');
});
it ("exception con start y end erroneos", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("123456789");
try {
flexbuffer.deleteAndGet(0,10);
} catch (e) {
done();
return;
}
should.fail('expected an error!');
});
it ("exception start > end", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("123456789");
try {
flexbuffer.deleteAndGet(9,8);
} catch (e) {
done();
return;
}
should.fail('expected an error!');
});
it ("exception con start muy grande", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("123456789");
try {
flexbuffer.deleteAndGet(10,11);
} catch (e) {
done();
return;
}
should.fail('expected an error!');
});
it ("no errores con start and end validos", function (done) {
var flexbuffer = new fbuffers.FlexBuffer();
flexbuffer.write("123456789");
try {
flexbuffer.deleteAndGet(0,9);
} catch (e) {
should.fail('No deberia dar error!', e);
return;
}
done();
});
});