65 lines
1.3 KiB
Go
65 lines
1.3 KiB
Go
package queue
|
|
|
|
import (
|
|
"github.com/go-stomp/stomp/v3/frame"
|
|
. "gopkg.in/check.v1"
|
|
)
|
|
|
|
type MemoryQueueSuite struct{}
|
|
|
|
var _ = Suite(&MemoryQueueSuite{})
|
|
|
|
func (s *MemoryQueueSuite) Test1(c *C) {
|
|
mq := NewMemoryQueueStorage()
|
|
mq.Start()
|
|
|
|
f1 := frame.New(frame.MESSAGE,
|
|
frame.Destination, "/queue/test",
|
|
frame.MessageId, "msg-001",
|
|
frame.Subscription, "1")
|
|
|
|
err := mq.Enqueue("/queue/test", f1)
|
|
c.Assert(err, IsNil)
|
|
|
|
f2 := frame.New(frame.MESSAGE,
|
|
frame.Destination, "/queue/test",
|
|
frame.MessageId, "msg-002",
|
|
frame.Subscription, "1")
|
|
|
|
err = mq.Enqueue("/queue/test", f2)
|
|
c.Assert(err, IsNil)
|
|
|
|
f3 := frame.New(frame.MESSAGE,
|
|
frame.Destination, "/queue/test2",
|
|
frame.MessageId, "msg-003",
|
|
frame.Subscription, "2")
|
|
|
|
err = mq.Enqueue("/queue/test2", f3)
|
|
c.Assert(err, IsNil)
|
|
|
|
// attempt to dequeue from a different queue
|
|
f, err := mq.Dequeue("/queue/other-queue")
|
|
c.Check(err, IsNil)
|
|
c.Assert(f, IsNil)
|
|
|
|
f, err = mq.Dequeue("/queue/test2")
|
|
c.Check(err, IsNil)
|
|
c.Assert(f, Equals, f3)
|
|
|
|
f, err = mq.Dequeue("/queue/test")
|
|
c.Check(err, IsNil)
|
|
c.Assert(f, Equals, f1)
|
|
|
|
f, err = mq.Dequeue("/queue/test")
|
|
c.Check(err, IsNil)
|
|
c.Assert(f, Equals, f2)
|
|
|
|
f, err = mq.Dequeue("/queue/test")
|
|
c.Check(err, IsNil)
|
|
c.Assert(f, IsNil)
|
|
|
|
f, err = mq.Dequeue("/queue/test2")
|
|
c.Check(err, IsNil)
|
|
c.Assert(f, IsNil)
|
|
}
|