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