|
|
-
- // Unit testing on datastore
-
- describe('Datastore', function() {
-
- before(function() {
- initSugarizer();
- });
-
- var objectIds = [];
- describe('#create()', function() {
- it('should create one entry', function(done) {
- var results = datastore.create({name: "entry", activity: "test"}, function(err, oid) {
- objectIds.push(oid);
- chai.assert.equal(null, err);
- chai.assert.notEqual(null, oid);
- chai.assert.equal(36, oid.length);
- }, {value: "100"});
-
- var results = datastore.find();
- chai.assert.equal(1, results.length);
- chai.assert.equal("entry", results[0].metadata.name);
- chai.assert.equal("test", results[0].metadata.activity);
- chai.assert.isNotNull(results[0].text);
-
- var results = datastore.find("test");
- chai.assert.equal(1, results.length);
- chai.assert.equal("entry", results[0].metadata.name);
- chai.assert.equal("test", results[0].metadata.activity);
- chai.assert.isNotNull(results[0].text);
-
- var entry = new datastore.DatastoreObject(objectIds[0]);
- entry.loadAsText(function(err, metadata, text) {
- chai.assert.equal("100", text.value);
- done();
- });
- });
-
- it('should set text to null if undefined', function() {
- var results = datastore.create({name: "entry2", activity: "test2"}, function(err, oid) {
- objectIds.push(oid);
- chai.assert.equal(null, err);
- chai.assert.notEqual(null, oid);
- chai.assert.equal(36, oid.length);
- });
-
- var results = datastore.find("test2");
- chai.assert.equal(1, results.length);
- chai.assert.equal("entry2", results[0].metadata.name);
- chai.assert.equal("test2", results[0].metadata.activity);
- chai.assert.isNull(results[0].text);
- });
- });
-
- describe('#find()', function() {
- it('should return all object created', function() {
- var results = datastore.find();
- chai.assert.equal(objectIds.length, results.length);
- });
-
- it('should allow find specific activity', function() {
- var results = datastore.find("test");
- chai.assert.equal(1, results.length);
- });
-
- it('should return empty on inexisting activity', function() {
- var results = datastore.find("xxxx");
- chai.assert.equal(0, results.length);
- });
- });
-
- describe('#getMetadata()', function() {
- it('should get entry', function(done) {
- var entry = new datastore.DatastoreObject(objectIds[0]);
- entry.getMetadata(function(err, metadata) {
- chai.assert.equal("entry", metadata.name);
- chai.assert.equal("test", metadata.activity);
- done();
- });
- });
-
- it('should get empty element on inexisting entry', function(done) {
- var entry = new datastore.DatastoreObject("ffffffff-ffff-ffff-ffff-ffffffffffff");
- entry.getMetadata(function() {
- chai.assert.fail();
- });
- chai.assert.equal("ffffffff-ffff-ffff-ffff-ffffffffffff", entry.objectId);
- chai.assert.deepEqual({}, entry.newMetadata);
- done();
- });
-
- it('should get empty element on undefined id', function(done) {
- var entry = new datastore.DatastoreObject();
- entry.getMetadata(function() {
- chai.assert.fail();
- });
- chai.assert.equal(undefined, entry.objectId);
- chai.assert.deepEqual({}, entry.newMetadata);
- chai.assert.isNull(entry.newDataAsText);
- done();
- });
- });
-
- describe('#save()', function() {
- it('should update metadata on existing object', function(done) {
- var entry = new datastore.DatastoreObject(objectIds[0]);
- entry.getMetadata(function(err, metadata) {
- chai.assert.equal(objectIds[0], entry.objectId);
- chai.assert.equal("entry", metadata.name);
- chai.assert.equal("test", metadata.activity);
- var timeBefore = new Date().getTime();
- entry.save(function(err, metasaved) {
- var timeAfter = new Date().getTime();
- chai.assert.equal("entry", metasaved.name);
- chai.assert.equal("test", metasaved.activity);
- chai.assert.ok(metasaved.timestamp >= timeBefore);
- chai.assert.ok(metasaved.timestamp <= timeAfter);
- chai.assert.deepEqual({ stroke: '#AC32FF', fill: '#FF8F00' }, metasaved.buddy_color);
- chai.assert.equal("Mocha", metasaved.buddy_name);
- done();
- });
- });
- });
-
- it('should update text on existing object', function(done) {
- var entry = new datastore.DatastoreObject(objectIds[0]);
- entry.loadAsText(function(err, metadata, text) {
- chai.assert.equal(objectIds[0], entry.objectId);
- chai.assert.equal("entry", metadata.name);
- chai.assert.equal("test", metadata.activity);
- chai.assert.equal("100", text.value);
- entry.setDataAsText({value: "200"});
- var timeBefore = new Date().getTime();
- entry.save(function(err, metasaved, textsaved) {
- var timeAfter = new Date().getTime();
- chai.assert.equal("entry", metasaved.name);
- chai.assert.equal("test", metasaved.activity);
- chai.assert.ok(metasaved.timestamp >= timeBefore);
- chai.assert.ok(metasaved.timestamp <= timeAfter);
- chai.assert.deepEqual({ stroke: '#AC32FF', fill: '#FF8F00' }, metasaved.buddy_color);
- chai.assert.equal("Mocha", metasaved.buddy_name);
- chai.assert.equal("200", textsaved.value);
- done();
- });
- });
- });
-
- it('should create metadata for new object', function(done) {
- var entry = new datastore.DatastoreObject();
- var timeBefore = new Date().getTime();
- entry.save(function(err, metadata, text) {
- var timeAfter = new Date().getTime();
- chai.assert.isNotNull(entry.objectId);
- chai.assert.equal(36, entry.objectId.length);
- chai.assert.ok(metadata.timestamp >= timeBefore);
- chai.assert.ok(metadata.timestamp <= timeAfter);
- chai.assert.ok(metadata.creation_time >= timeBefore);
- chai.assert.ok(metadata.creation_time <= timeAfter);
- chai.assert.deepEqual({ stroke: '#AC32FF', fill: '#FF8F00' }, metadata.buddy_color);
- chai.assert.equal("Mocha", metadata.buddy_name);
- chai.assert.equal("0", metadata.file_size);
- chai.assert.isNull(text);
- objectIds.push(entry.objectId);
- done();
- });
- });
- });
-
- describe('#loadAsText()', function() {
- it('should get text entry', function(done) {
- var entry = new datastore.DatastoreObject(objectIds[0]);
- entry.loadAsText(function(err, metadata, text) {
- chai.assert.equal("200", text.value);
- done();
- });
- });
-
- it('should get null on free text entry', function(done) {
- var entry = new datastore.DatastoreObject(objectIds[1]);
- entry.loadAsText(function(err, metadata, text) {
- chai.assert.equal(objectIds[1], entry.objectId);
- chai.assert.isNull(text);
- done();
- });
- });
-
- it('should do nothing on undefined id', function(done) {
- var entry = new datastore.DatastoreObject();
- entry.loadAsText(function() {
- chai.assert.fail();
- });
- chai.assert.equal(undefined, entry.objectId);
- chai.assert.deepEqual({}, entry.newMetadata);
- chai.assert.isNull(entry.newDataAsText);
- done();
- });
- });
-
- describe('#setMetadata()', function() {
- it('should not change data when nothing change', function(done) {
- var entry = new datastore.DatastoreObject(objectIds[0]);
- entry.getMetadata(function() {
- entry.setMetadata();
- entry.save(function(err, metadata, text) {
- chai.assert.equal(objectIds[0], entry.objectId);
- chai.assert.equal("entry", metadata.name);
- chai.assert.equal("test", metadata.activity);
- done();
- });
- });
- });
-
- it('should change/update metadata', function(done) {
- var entry = new datastore.DatastoreObject(objectIds[0]);
- entry.getMetadata(function() {
- entry.setMetadata({
- name: "updatedentry",
- width: "100px"
- });
- entry.save(function(err, metadata) {
- chai.assert.equal(objectIds[0], entry.objectId);
- chai.assert.equal("updatedentry", metadata.name);
- chai.assert.equal("test", metadata.activity);
- chai.assert.equal("100px", metadata.width);
- done();
- });
- });
- });
-
- it('should update entry - double check', function(done) {
- var entry = new datastore.DatastoreObject(objectIds[0]);
- entry.getMetadata(function(err, metadata) {
- chai.assert.equal("updatedentry", metadata.name);
- chai.assert.equal("test", metadata.activity);
- chai.assert.equal("100px", metadata.width);
- done();
- });
- });
- });
-
- describe('#setDataAsText()', function() {
- it('should remove text when undefined', function(done) {
- var entry = new datastore.DatastoreObject(objectIds[0]);
- entry.loadAsText(function() {
- entry.setDataAsText();
- entry.save(function(err, metadata, text) {
- chai.assert.equal(objectIds[0], entry.objectId);
- chai.assert.equal(undefined, text);
- done();
- });
- });
- });
-
- it('should update text', function(done) {
- var entry = new datastore.DatastoreObject(objectIds[0]);
- entry.loadAsText(function() {
- entry.setDataAsText({newvalue: "200"});
- entry.save(function(err, metadata, text) {
- chai.assert.equal(objectIds[0], entry.objectId);
- chai.assert.equal("200",text.newvalue);
- done();
- });
- });
- });
-
- it('should update entry - double check', function(done) {
- var entry = new datastore.DatastoreObject(objectIds[0]);
- entry.loadAsText(function(err, metadata, text) {
- chai.assert.equal("200", text.newvalue);
- done();
- });
- });
- });
-
- describe('#remove()', function() {
- it('should do nothing on inexisting entry', function() {
- datastore.remove("ffffffff-ffff-ffff-ffff-ffffffffffff");
- var results = datastore.find();
- chai.assert.equal(objectIds.length, results.length);
- });
-
- it('should remove entry', function() {
- for (var i = 0 ; i < objectIds.length ; i++)
- datastore.remove(objectIds[i]);
- var results = datastore.find();
- chai.assert.equal(0, results.length);
- });
- });
- });
|