cloudboost-tv
Version:
Database Service that does Storage, Search, Real-time and a whole lot more.
1,207 lines (1,093 loc) • 61.2 kB
JavaScript
describe("Cloud Queue Tests", function() {
//Use Sample Table.
// -> Which has columns :
// name : string : required
it("Should return no queue objects when there are no queues inthe database",function(done){
this.timeout(30000);
CB.CloudQueue.getAll({
success : function(response){
if(!response || response.length ===0)
done();
else
done("Empty results not returned.")
},error : function(error){
done(error);
}
});
});
it("Should get the message when expires is set to future date.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var queueMessage = new CB.QueueMessage();
var today = new Date();
var tomorrow = new Date(today);
tomorrow.setDate(today.getDate()+1);
//
queueMessage.expires = tomorrow; // 1hr. The message will appear after 1 hr.
queueMessage.message = "data";
queue.addMessage(queueMessage,{
success : function(response){
if(response.expires){
queue.getMessage({
success : function(response){
if(response.expires){
done();
}else{
done("Message is null.");
}
},error : function(error){
done(error);
}
});
}else{
done("Expires is null when set");
}
},error : function(error){
done(error);
}
});
});
it("Should add data into the Queue",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
queue.addMessage('sample',{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
done();
}
else{
done("Added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should create a queue and delete a queue",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
queue.create({
success : function(queue){
queue.delete({
success : function(queue){
done();
},error : function(error){
done(error);
}
});
},error : function(error){
done(error);
}
});
});
it("Should add expires into the queue message.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var queueMessage = new CB.QueueMessage();
var today = new Date();
var tomorrow = new Date(today);
tomorrow.setDate(today.getDate()+1);
//
queueMessage.expires = tomorrow; // 1hr. The message will appear after 1 hr.
queueMessage.message = "data";
queue.addMessage(queueMessage,{
success : function(response){
if(response.expires){
done();
}else{
done("Expires is null when set");
}
},error : function(error){
done(error);
}
});
});
it("Should add current time as expires into the queue.",function(done){
this.timeout(40000);
var queue = new CB.CloudQueue(util.makeString());
var queueMessage = new CB.QueueMessage();
queueMessage.expires = new Date();
queueMessage.message = "data";
queue.addMessage(queueMessage,{
success : function(response){
if(response.expires){
done();
}else{
done("Expires is null when set");
}
},error : function(error){
done(error);
}
});
});
it("Should add multiple messages and get all messages.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
queue.addMessage('sample',{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
queue.addMessage('sample1',{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample1'){
queue.getAllMessages({
success : function(response){
if(response.length===2){
var qMessagesList=true;
for(var i=0;i<response.length;i++){
if(response[i] instanceof CB.QueueMessage){
qMessagesList=true;
}else{
qMessagesList=false;
break;
}
}
if(qMessagesList){
done();
}else{
done("Wrong queue message.");
}
}else{
done("Wrong queue message");
}
},error : function(error){
done(error);
}
});
}
else{
done("Added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
}
else{
done("Added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should update data into the Queue",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
queue.addMessage('sample',{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
response.message = "Hey!";
queue.updateMessage(response,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'Hey!'){
done();
}
else{
done("Added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
}
else{
done("Added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should not update data in the queue which is not saved.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
try{
queue.updateMessage('sample',{
success : function(response){
done("Updated unsaved data");
},error : function(error){
done(error);
}
});
}catch(e){
done();
}
});
it("Should create the Queue",function(done){
this.timeout(30000);
var name = util.makeString();
var queue = new CB.CloudQueue(name);
queue.create({
success : function(response){
if(response instanceof CB.CloudQueue && response.name){
if(response.name === name && response.createdAt && response.updatedAt){
done();
}
else{
done("Incorrect data");
}
}else{
done("Didnot create queue");
}
},error : function(error){
done(error);
}
});
});
it("Should add an array into the queue",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
queue.addMessage(['sample','sample2'],{
success : function(response){
if(response.constructor === Array && response.length === 2 && response[0] instanceof CB.QueueMessage && response[0].id && response[1] instanceof CB.QueueMessage && response[1].id){
done();
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Can add multiple messages into the same queue.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
queue.addMessage(['sample','sample2'],{
success : function(response){
if(response.constructor === Array && response.length === 2 && response[0] instanceof CB.QueueMessage && response[0].id && response[1] instanceof CB.QueueMessage && response[1].id){
//addMessage again.
queue.addMessage(['sample','sample2'],{
success : function(response){
if(response.constructor === Array && response.length === 2 && response[0] instanceof CB.QueueMessage && response[0].id && response[1] instanceof CB.QueueMessage && response[1].id){
//addMessage again.
done();
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should not add null data into the Queue",function(done){
this.timeout(30000);
try{
var queue = new CB.CloudQueue(util.makeString());
queue.addMessage(null,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
done();
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
done("Null inserted");
}catch(e){
done();
}
});
it("Should not create a queue with empty name",function(done){
this.timeout(30000);
try{
var queue = new CB.CloudQueue();
done("Null inserted");
}catch(e){
done();
}
});
it("Should add and get data from the queue.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample');
//message.delay = 3000;
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
//now getMessage it.
queue.getMessage({
success : function(message){
if(message.message === 'sample'){
done();
}
}, error : function(error){
done(error);
}
});
}
else{
done("Added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should peek.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample');
//message.delay = 3000;
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
//now getMessage it.
queue.peekMessage({
success : function(message){
if(message.message === 'sample'){
//peekMessage again.
queue.peekMessage({
success : function(message){
if(message.message === 'sample'){
done();
}
}, error : function(error){
done(error);
}
});
}
}, error : function(error){
done(error);
}
});
}
else{
done("Added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should get the messages in FIFO",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample1');
//message.delay = 3000;
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample1'){
var message = new CB.QueueMessage('sample2');
//message.delay = 3000;
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample2'){
//now getMessage it.
queue.getMessage({
success : function(message){
if(message.message === 'sample1'){
queue.getMessage({
success : function(message){
if(message.message === 'sample2'){
done();
}
}, error : function(error){
done(error);
}
});
}
}, error : function(error){
done(error);
}
});
}
else{
done("Added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
}
else{
done("Added but incorrect data");
}
}else{
done("Message Added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should peek 2 messages at the same time.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample1');
//message.delay = 3000;
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample1'){
var message = new CB.QueueMessage('sample2');
//message.delay = 3000;
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample2'){
//now getMessage it.
queue.peekMessage(2, {
success : function(messages){
if(messages.length ===2 && messages[0].id && messages[1].id){
done();
}
}, error : function(error){
done(error);
}
});
}
else{
done("Added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
}
else{
done("Added but incorrect data");
}
}else{
done("Message Added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should get 2 messages at the same time.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample1');
//message.delay = 3000;
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample1'){
var message = new CB.QueueMessage('sample2');
//message.delay = 3000;
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample2'){
//now getMessage it.
queue.getMessage(2, {
success : function(messages){
if(messages.length ===2 && messages[0].id && messages[1].id){
done();
}
}, error : function(error){
done(error);
}
});
}
else{
done("Add but incorrect data");
}
}else{
done("Message add but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
}
else{
done("Added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should not getMessage message with the delay ",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample');
message.delay = 3000;
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
//now getMessage it.
queue.getMessage({
success : function(message){
if(!message){
done();
}
else{
done("Got the message inspite of the delay");
}
}, error : function(error){
done(error);
}
});
}
else{
done("added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("should give an error if queue doesnot exists.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample');
//message.delay = 3000;
queue.getMessage({
success : function(message){
done("Got the message");
}, error : function(error){
done();
}
});
});
it("should not get the same message twice. ",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample');
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
//now getMessage it.
queue.getMessage({
success : function(message){
if(message){
queue.getMessage({
success : function(message){
if(!message){
done();
}else{
done("Got a message.")
}
}, error : function(error){
done(error);
}
});
}else{
done("Cannot get the message.")
}
}, error : function(error){
done(error);
}
});
}
else{
done("Get message but incorrect data");
}
}else{
done("Message get but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("should be able to get message after the timeout.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample');
message.timeout =3; //1 sec
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
//now getMessage it.
queue.getMessage({
success : function(message){
if(message.message = 'sample'){
//getMessage it again.
setTimeout(function(){
queue.getMessage({
success : function(message){
if(!message){
done("Message is null");
}
if(message.message = 'sample'){
done();
}else{
done("Cannot get the message");
}
}, error : function(error){
done(error);
}
});
},7000);
}else{
done("Cannot get the message");
}
}, error : function(error){
done(error);
}
});
}
else{
done("added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should be able to get messages after the delay.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample');
message.delay =1; //1 sec
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
//now getMessage it.
setTimeout(function(){
queue.getMessage({
success : function(message){
if(message.message = 'sample'){
done();
}else{
done("Cannot get the message");
}
}, error : function(error){
done(error);
}
});
},2000);
}
else{
done("added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should be able to get message with an id",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample');
message.delay =1; //1 sec
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
//now getMessage it.
queue.getMessageById(response.id,{
success : function(message){
if(message.message = 'sample'){
done();
}else{
done("Cannot get the message");
}
}, error : function(error){
done(error);
}
});
}
else{
done("added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should get null when invalid message id is requested.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample');
message.delay =1; //1 sec
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
//now getMessage it.
queue.getMessageById("sample",{
success : function(message){
if(!message){
done();
}else{
done("Got the wrong message");
}
}, error : function(error){
done(error);
}
});
}
else{
done("added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should delete message with message id.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample');
message.delay =1; //1 sec
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
//now getMessage it.
queue.deleteMessage(response.id,{
success : function(message){
if(message!=null && message.id === response.id){
done();
}else{
done("Error, Null or wrong message returned.")
}
}, error : function(error){
done(error);
}
});
}
else{
done("added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should delete message by passing queueMessage to the function",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample');
message.delay =1; //1 sec
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
//now getMessage it.
queue.deleteMessage(response,{
success : function(message){
if(message!=null && message.id === response.id){
done();
}else{
done("Error, Null or wrong message returned.")
}
}, error : function(error){
done(error);
}
});
}
else{
done("added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should not get the message after it was deleted",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var message = new CB.QueueMessage('sample');
message.delay =1; //1 sec
queue.addMessage(message,{
success : function(response){
if(response instanceof CB.QueueMessage && response.id){
if(response.message === 'sample'){
//now getMessage it.
queue.deleteMessage(response,{
success : function(message){
if(message!=null && message.id === response.id){
queue.getMessageById(response.id, {
success : function(message){
if(!message)
done();
else
done("Received the message after it was deleted.");
}, error : function(error){
done(error);
}
});
}else{
done("Error, Null or wrong message returned.")
}
}, error : function(error){
done(error);
}
});
}
else{
done("added but incorrect data");
}
}else{
done("Message added but response is not QueueMessage");
}
},error : function(error){
done(error);
}
});
});
it("Should add subscriber to the queue.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var url = "http://sample.sample.com";
queue.addSubscriber(url,{
success : function(response){
if(response.subscribers.indexOf(url)>=0){
done();
}else{
done("subscribers not added to the queue");
}
},error : function(error){
done(error);
}
});
});
it("Should multiple subscribers to the queue.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var url = ["http://sample.sample.com","http://sample1.cloudapp.net"];
queue.addSubscriber(url,{
success : function(response){
for(var i=0;i<url.length;i++){
if(response.subscribers.indexOf(url[i])===-1){
done("Subscribers not added.");
}
}
done();
},error : function(error){
done(error);
}
});
});
it("Should remove subscriber from the queue.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var url ="http://sample1.cloudapp.net";
queue.removeSubscriber(url,{
success : function(response){
if(response.subscribers.indexOf(url)===-1){
done();
}else{
done("subscribers not added to the queue");
}
},error : function(error){
done(error);
}
});
});
it("Should remove multiple subscriber from the queue.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var url =["http://sample1.cloudapp.net","http://sample2.cloudapp.net"];
queue.removeSubscriber(url,{
success : function(response){
for(var i=0;i<url.length;i++){
if(response.subscribers.indexOf(url[i])>=0){
done("Subscribers not removed.");
}
}
done();
},error : function(error){
done(error);
}
});
});
it("Should not add subscriber with invalid URL.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var url = "sample,sample";
queue.addSubscriber(url,{
success : function(response){
done("Success called with invalid URL");
},error : function(error){
done();
}
});
});
it("Should add a subscriber and then remove a subscriber from the queue.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
var url = "https://sample.sample.com";
queue.addSubscriber(url,{
success : function(response){
if(queue.subscribers.length === 1){
queue.removeSubscriber(url,{
success : function(response){
if(queue.subscribers.length === 0){
done();
}
},error : function(error){
done("Failed to remove a subscriber");
}
});
}
},error : function(error){
done("Failed to add a subscriber");
}
});
});
it("Should delete the queue.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
queue.addMessage("sample",{
success : function(response){
if(response.id){
//now delete the queue.
queue.delete({
success : function(response){
if(response.name){
//getMessage message from the queue.
queue.getMessage({
success : function(response){
if(response.id){
done("get message from the queue which is deleted.");
}else{
done("get message from deleted queue.");
}
},error : function(error){
done();
}
});
}else{
done("Failed to delete the queue.");
}
},error : function(error){
done("Failed to add a subscriber");
}
});
}else{
done("Failed to add the message.");
}
},error : function(error){
done("Failed to add a subscriber");
}
});
});
it("Should clear the queue.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
queue.addMessage("sample",{
success : function(response){
if(response.id){
//now delete the queue.
queue.clear({
success : function(response){
if(response.name){
//getMessage message from the queue.
queue.getMessage({
success : function(response){
if(response){
done("get message from the queue which is deleted.");
}else{
done();
}
},error : function(error){
done("Error getting data");
}
});
}else{
done("Failed to delete the queue.");
}
},error : function(error){
done("Failed to clear a message.");
}
});
}else{
done("Failed to add a message");
}
},error : function(error){
done("Failed to add a message");
}
});
});
it("Should get the queue.",function(done){
this.timeout(30000);
var queue = new CB.CloudQueue(util.makeString());
queue.addMessage("sample",{
success : function(response){
if(response.id){
//now delete the queue.
queue.get({
success : function(response){
if(response.id){
//getMessage message from the queue.
done();
}else{
done("Failed to get the queue.");
}
},error : function(error){
done("Failed to get the message.");
}
});
}else{
done("Failed to add a message");
}