cloudboost-tv
Version:
Database Service that does Storage, Search, Real-time and a whole lot more.
1,252 lines (975 loc) • 33.3 kB
JavaScript
describe("Query on Cloud Object Notifications ", function() {
//Use Sample Table.
// -> Which has columns :
// name : string : required.
it("limit : 1", function(done) {
var isDone = false;
this.timeout(40000);
//create the query.
var query = new CB.CloudQuery('Student');
query.limit = 2;
var count = 0;
CB.CloudObject.on('Student', 'created', query, function() {
++count;
});
for (var i = 0; i < 3; i++) {
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('name', 'Nawaz');
obj.save();
}
setTimeout(function() {
if (count === 2) {
if (!isDone) {
isDone = true;
done();
};
} else {
if (!isDone) {
isDone = true;
done("Limit Error");
};
}
}, 30000)
});
it("near : 1", function(done) {
//Custom5 table has location field.
this.timeout(30000);
var loc = new CB.CloudGeoPoint("76.991204", "28.605977");
var query = new CB.CloudQuery('Custom5');
var isDone = false;
query.near("location", loc, 40000); //40km
CB.CloudObject.on('Custom5', 'created', query, function() {
CB.CloudObject.off('Custom5', 'created');
isDone = true;
});
loc = new CB.CloudGeoPoint("77.061327", "28.621272");
var obj = new CB.CloudObject('Custom5');
obj.set('location', loc);
obj.save();
setTimeout(function() {
if (isDone) {
done();
} else {
done('event not fired');
}
}, 20000);
});
it("near : 2", function(done) {
//Custom5 table has location field.
this.timeout(30000);
var loc = new CB.CloudGeoPoint("76.991204", "28.605977");
var query = new CB.CloudQuery('Custom5');
var isDone = false;
query.near("location", loc, 40000); //40km
CB.CloudObject.on('Custom5', 'created', query, function() {
CB.CloudObject.off('Custom5', 'created');
isDone = true;
});
loc = new CB.CloudGeoPoint("78.486671", "17.385044");
var obj = new CB.CloudObject('Custom5');
obj.set('location', loc);
obj.save();
setTimeout(function() {
if (!isDone) {
done();
} else {
done('event fired');
}
}, 20000);
});
it("should only fire the second event and not the first one. ", function(done) {
var message = "unmodified";
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.equalTo('name', 'Sample');
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
message = 'first event fired.';
} else {
message = 'first event fired after second.';
}
});
query = new CB.CloudQuery('Student');
query.equalTo('age', 10);
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
} else {
message = 'second event fired after first';
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 10);
obj.save();
setTimeout(function() {
if (message == 'unmodified') {
done();
} else {
done(message);
}
}, 20000);
});
it("should only fire the first event and not the second one. ", function(done) {
var message = "unmodified";
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.equalTo('name', 'Sample');
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
} else {
message = 'first event fired after second.';
}
});
query = new CB.CloudQuery('Student');
query.equalTo('age', 10);
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
message = 'second event fired.';
} else {
message = 'second event fired after first';
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('name', 'Sample');
obj.save();
setTimeout(function() {
if (message == 'unmodified') {
done();
} else {
done(message);
}
}, 20000);
});
it("skip : 1", function(done) {
var isDone = false;
this.timeout(40000);
//create the query.
var query = new CB.CloudQuery('Student');
query.skip = 1;
var count = 0;
CB.CloudObject.on('Student', 'created', query, function(data) {
++count;
});
for (var i = 0; i < 3; i++) {
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('name', 'Nawaz');
obj.save();
}
setTimeout(function() {
if (count === 2) {
if (!isDone) {
isDone = true;
done();
};
} else {
if (!isDone) {
isDone = true;
done("Limit Error");
};
}
}, 20000);
});
it("notification should work on equalTo Columns", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.equalTo('name', 'Sample');
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done();
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('name', 'Sample');
obj.save();
});
it("should work on equalTo Columns : 2", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.equalTo('name', 'Sample');
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done("Fired a wrong event");
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('name', 'Sample1');
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
}
}, 10000);
});
it("should work on notEqualTo Columns : 1", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.notEqualTo('name', 'Sample');
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done();
};
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('name', 'Sample1');
obj.save();
});
it("should work on notEqualTo Columns : 2", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.notEqualTo('name', 'Sample');
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done("Fired a wrong event");
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('name', 'Sample');
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
});
it("greaterThan : 1", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.greaterThan('age', 10);
CB.CloudObject.on('Student', 'created', query, function() {
if (!isDone) {
isDone = true;
done();
};
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 11);
obj.save();
});
it("greaterThan : 2", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.greaterThan('age', 10);
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done("Fired a wrong event");
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 9);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
});
it("lessThan : 1", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.lessThan('age', 10);
CB.CloudObject.on('Student', 'created', query, function() {
if (!isDone) {
isDone = true;
done();
};
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 9);
obj.save();
});
it("lessThan : 2", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.lessThan('age', 10);
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done("Fired a wrong event");
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 11);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
});
it("Exists : 1", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.exists('age');
CB.CloudObject.on('Student', 'created', query, function() {
if (!isDone) {
isDone = true;
done();
};
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 11);
obj.save();
});
it("Exists : 2", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.exists('name');
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done("Fired a wrong event");
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 9);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
});
it("doesNotExist : 1", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.doesNotExists('name');
CB.CloudObject.on('Student', 'created', query, function() {
if (!isDone) {
isDone = true;
done();
};
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 11);
obj.save();
});
it("doesNotExist : 2", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.doesNotExists('age');
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done("Fired a wrong event");
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 9);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
});
it("GTE : 1", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.greaterThanEqualTo('age', 11);
CB.CloudObject.on('Student', 'created', query, function() {
if (!isDone) {
isDone = true;
done();
};
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 11);
obj.save();
});
it("GTE : 2", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.greaterThanEqualTo('age', 9);
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done("Fired a wrong event");
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 8);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
});
it("LTE : 1", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.lessThanEqualTo('age', 11);
CB.CloudObject.on('Student', 'created', query, function() {
if (!isDone) {
isDone = true;
done();
};
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 11);
obj.save();
});
it("LTE : 2", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.lessThanEqualTo('age', 9);
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done("Fired a wrong event");
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 11);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
});
it("containedIn : 1", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.containedIn('age', [11]);
CB.CloudObject.on('Student', 'created', query, function() {
if (!isDone) {
isDone = true;
done();
};
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 11);
obj.save();
});
it("containedIn : 2", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.containedIn('age', [9]);
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done("Fired a wrong event");
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 11);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
});
it("notContainedIn : 1", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.notContainedIn('age', [10]);
CB.CloudObject.on('Student', 'created', query, function() {
if (!isDone) {
isDone = true;
done();
};
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 11);
obj.save();
});
it("notContainedIn : 2", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.notContainedIn('age', [9]);
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done("Fired a wrong event");
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 9);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
});
it("containsAll : 1", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.containsAll('age', [11]);
CB.CloudObject.on('Student', 'created', query, function() {
if (!isDone) {
isDone = true;
done();
};
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 11);
obj.save();
});
it("containsAll : 2", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query = new CB.CloudQuery('Student');
query.containsAll('age', [8]);
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done("Fired a wrong event");
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 9);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
});
it("or : 1", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query1 = new CB.CloudQuery('Student');
query1.equalTo('age', 8);
var query2 = new CB.CloudQuery('Student');
query2.equalTo('name', 'Nawaz');
var query = CB.CloudQuery.or(query1, query2);
CB.CloudObject.on('Student', 'created', query, function() {
if (!isDone) {
isDone = true;
done();
};
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 8);
obj.save();
});
it("or : 2", function(done) {
var isDone = false;
this.timeout(30000);
//create the query.
var query1 = new CB.CloudQuery('Student');
query1.equalTo('age', 8);
var query2 = new CB.CloudQuery('Student');
query2.equalTo('name', 'Nawaz');
var query = CB.CloudQuery.or(query1, query2);
CB.CloudObject.on('Student', 'created', query, function() {
CB.CloudObject.off('Student', 'created');
if (!isDone) {
isDone = true;
done("Fired a wrong event");
}
});
//attach it to the event.
var obj = new CB.CloudObject('Student');
obj.set('age', 9);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
});
// it("startsWith : 1",function(done){
// var isDone = false;
// this.timeout(30000);
// //create the query.
// var query = new CB.CloudQuery('Student');
// query.startsWith('name','N');
// CB.CloudObject.on('Student', 'created', query, function(){
// if(!isDone){
// isDone=true;
// done();
// };
// });
// //attach it to the event.
// var obj = new CB.CloudObject('Student');
// obj.set('name','Nawaz');
// obj.save();
// });
// it("startsWith : 2",function(done){
// var isDone = false;
// this.timeout(30000);
// var query = new CB.CloudQuery('Student');
// query.startsWith('name','N');
// CB.CloudObject.on('Student', 'created', query, function(){
// CB.CloudObject.off('Student','created');
// if(!isDone){
// isDone=true;
// done("Fired a wrong event");
// }
// });
// //attach it to the event.
// var obj = new CB.CloudObject('Student');
// obj.set('name','x');
// obj.save();
// setTimeout(function(){
// if(!isDone){
// isDone=true;
// done();
// };
// }, 10000);
// });
it("EqualTo over CloudObjects : 1", function(done) {
var isDone = false;
this.timeout(40000);
var child = new CB.CloudObject('student1');
child.save({
success: function(child) {
//create the query.
var query = new CB.CloudQuery('Custom2');
query.equalTo('newColumn7', child);
CB.CloudObject.on('Custom2', 'created', query, function(data) {
if (!isDone) {
isDone = true;
done();
}
});
var obj = new CB.CloudObject('Custom2');
obj.set('newColumn7', child);
obj.save();
},
error: function(error) {
done("Object cannot be saved");
}
});
});
it("EqualTo over CloudObjects : 2", function(done) {
var isDone = false;
this.timeout(40000);
var child = new CB.CloudObject('student1');
child.save({
success: function(child) {
var child2 = new CB.CloudObject('student1');
child2.save({
success: function(child2) {
//create the query.
var query = new CB.CloudQuery('Custom2');
query.equalTo('newColumn7', child2);
CB.CloudObject.on('Custom2', 'created', query, function(data) {
if (!isDone) {
isDone = true;
done("Wrong event fired");
}
});
var obj = new CB.CloudObject('Custom2');
obj.set('newColumn7', child);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
},
error: function(error) {
done("Object cannot be saved");
}
});
},
error: function(error) {
done("Object cannot be saved");
}
});
});
it("ContainedIn : 1", function(done) {
var isDone = false;
this.timeout(40000);
var child = new CB.CloudObject('student1');
child.save({
success: function(child) {
//create the query.
var query = new CB.CloudQuery('Custom4');
query.containedIn('newColumn7', [child]);
CB.CloudObject.on('Custom4', 'created', query, function(data) {
if (!isDone) {
isDone = true;
done();
}
});
var obj = new CB.CloudObject('Custom4');
obj.set('newColumn7', [child]);
obj.save();
},
error: function(error) {
done("Object cannot be saved");
}
});
});
it("ContainedIn : 2", function(done) {
var isDone = false;
this.timeout(40000);
var child = new CB.CloudObject('student1');
child.save({
success: function(child) {
var child2 = new CB.CloudObject('student1');
child2.save({
success: function(child2) {
//create the query.
var query = new CB.CloudQuery('Custom4');
query.containedIn('newColumn7', [child2]);
CB.CloudObject.on('Custom4', 'created', query, function(data) {
if (!isDone) {
isDone = true;
done("Wrong event fired");
}
});
var obj = new CB.CloudObject('Custom4');
obj.set('newColumn7', [child]);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
},
error: function(error) {
done("Object cannot be saved");
}
});
},
error: function(error) {
done("Object cannot be saved");
}
});
});
it("ContainsAll : 1", function(done) {
var isDone = false;
this.timeout(40000);
var child = new CB.CloudObject('student1');
child.save({
success: function(child) {
//create the query.
var query = new CB.CloudQuery('Custom4');
query.containsAll('newColumn7', [child]);
CB.CloudObject.on('Custom4', 'created', query, function(data) {
if (!isDone) {
isDone = true;
done();
}
});
var obj = new CB.CloudObject('Custom4');
obj.set('newColumn7', [child]);
obj.save();
},
error: function(error) {
done("Object cannot be saved");
}
});
});
it("ContainsAll : 2", function(done) {
var isDone = false;
this.timeout(40000);
var child = new CB.CloudObject('student1');
child.save({
success: function(child) {
var child2 = new CB.CloudObject('student1');
child2.save({
success: function(child2) {
//create the query.
var query = new CB.CloudQuery('Custom4');
query.containsAll('newColumn7', [child2]);
CB.CloudObject.on('Custom4', 'created', query, function(data) {
if (!isDone) {
isDone = true;
done("Wrong event fired");
}
});
var obj = new CB.CloudObject('Custom4');
obj.set('newColumn7', [child]);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
},
error: function(error) {
done("Object cannot be saved");
}
});
},
error: function(error) {
done("Object cannot be saved");
}
});
});
it("notContainedIn : 1", function(done) {
var isDone = false;
this.timeout(40000);
var child = new CB.CloudObject('student1');
child.save({
success: function(child) {
//create the query.
var query = new CB.CloudQuery('Custom4');
query.notContainedIn('newColumn7', [child]);
CB.CloudObject.on('Custom4', 'created', query, function(data) {
if (!isDone) {
isDone = true;
done("Wrong event fired");
}
});
var obj = new CB.CloudObject('Custom4');
obj.set('newColumn7', [child]);
obj.save();
setTimeout(function() {
if (!isDone) {
isDone = true;
done();
};
}, 10000);
},
error: function(error) {
done("Object cannot be saved");
}
});
});
it("notContainedIn : 2", function(done) {
var isDone = false;
this.timeout(40000);
var child = new CB.CloudObject('student1');
child.save({
success: function(child) {
var child2 = new CB.CloudObject('student1');
child2.save({
success: function(child2) {
//create the query.
var query = new CB.CloudQuery('Custom4');
query.notContainedIn('newColumn7', [child2]);
CB.CloudObject.on('Custom4', 'created', query, function(data) {
if (!isDone) {
isDone = true;
done();
}
});
var obj = new CB.CloudObject('Custom4');
obj.set('newColumn7', [child]);
obj.save();
},
error: function(error) {
done("Object cannot be saved");
}
});
},
error: function(error) {
done("Object cannot be saved");
}
});
});
});