rest-rsmq
Version:
A RESTful interface for rsmq
163 lines (155 loc) • 5.34 kB
JavaScript
// Generated by CoffeeScript 1.6.3
(function() {
var app, async, http, should, _;
_ = require("underscore");
should = require("should");
async = require("async");
app = require("../app");
http = require("../test/support/http");
describe('REST-rsmq Test', function() {
var m1, m2, q1;
before(function(done) {
http.createServer(app, done);
});
after(function(done) {
done();
});
q1 = "mytestQueue";
m1 = null;
m2 = null;
it('POST /queues/mytestQueue should return 200 and create the queue', function(done) {
http.request().post('/queues/' + q1).set('Content-Type', 'application/json').write(JSON.stringify({
vt: 20,
maxsize: 2048
})).end(function(resp) {
var body;
resp.statusCode.should.equal(200);
body = JSON.parse(resp.body);
body.result.should.equal(1);
return done();
});
return;
});
it('POST /messages/mytestQueue should return 200 and send message 1', function(done) {
http.request().post('/messages/' + q1).set('Content-Type', 'application/json').write(JSON.stringify({
message: "Hello World!"
})).end(function(resp) {
var body;
resp.statusCode.should.equal(200);
body = JSON.parse(resp.body);
body.id.length.should.equal(32);
m1 = body.id;
return done();
});
return;
});
it('POST /messages/mytestQueue should return 200 and send message 2', function(done) {
http.request().post('/messages/' + q1).set('Content-Type', 'application/json').write(JSON.stringify({
message: "Foo",
delay: 20
})).end(function(resp) {
var body;
resp.statusCode.should.equal(200);
body = JSON.parse(resp.body);
body.id.length.should.equal(32);
m2 = body.id;
return done();
});
return;
});
it('GET /messages/mytestQueue should return message 1', function(done) {
http.request().get('/messages/' + q1).end(function(resp) {
var body;
resp.statusCode.should.equal(200);
body = JSON.parse(resp.body);
body.id.should.equal(m1);
done();
});
});
it('GET /messages/mytestQueue should not return a message', function(done) {
http.request().get('/messages/' + q1).end(function(resp) {
var body;
resp.statusCode.should.equal(200);
body = JSON.parse(resp.body);
should.not.exist(body.id);
done();
});
});
it('PUT /messages/mytestQueue/message2 to set vt to 0', function(done) {
http.request().put('/messages/' + q1 + '/' + m2 + '?vt=0').end(function(resp) {
var body;
resp.statusCode.should.equal(200);
body = JSON.parse(resp.body);
body.result.should.equal(1.);
done();
});
});
it('GET /messages/mytestQueue should return message 2', function(done) {
http.request().get('/messages/' + q1).end(function(resp) {
var body;
resp.statusCode.should.equal(200);
body = JSON.parse(resp.body);
body.id.should.equal(m2);
done();
});
});
it('GET /messages/mytestQueue should not return a message', function(done) {
http.request().get('/messages/' + q1).end(function(resp) {
var body;
resp.statusCode.should.equal(200);
body = JSON.parse(resp.body);
should.not.exist(body.id);
done();
});
});
it('DELETE /messages/mytestQueue/:message1 should delete message 1', function(done) {
http.request()["delete"]('/messages/' + q1 + '/' + m1).end(function(resp) {
var body;
resp.statusCode.should.equal(200);
body = JSON.parse(resp.body);
body.result.should.equal(1);
done();
});
});
it('DELETE /messages/mytestQueue/:message1 should fail', function(done) {
http.request()["delete"]('/messages/' + q1 + '/' + m1).end(function(resp) {
var body;
resp.statusCode.should.equal(200);
body = JSON.parse(resp.body);
body.result.should.equal(0);
done();
});
});
it('DELETE /messages/mytestQueue/:message2 should delete message 2', function(done) {
http.request()["delete"]('/messages/' + q1 + '/' + m2).end(function(resp) {
var body;
resp.statusCode.should.equal(200);
body = JSON.parse(resp.body);
body.result.should.equal(1);
done();
});
});
it('GET /queues/mytestQueue should return our queue attributes', function(done) {
http.request().get('/queues/' + q1).end(function(resp) {
var body;
resp.statusCode.should.equal(200);
body = JSON.parse(resp.body);
body.maxsize.should.equal(2048);
body.totalsent.should.equal(2);
done();
});
});
it('GET /queues should return our queue name', function(done) {
http.request().get('/queues').end(function(resp) {
var body;
resp.statusCode.should.equal(200);
body = JSON.parse(resp.body);
body.queues.should.containEql(q1);
done();
});
});
it('DELETE /queues/mytestQueue should return 200 ', function(done) {
http.request()["delete"]('/queues/' + q1).expect(200, done);
});
});
}).call(this);