mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-14 12:49:54 +05:00
added tests for pubusub save function
This commit is contained in:
@@ -23,6 +23,23 @@ func TestSubscribe(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestSubscribeSave(t *testing.T) {
|
||||
ps := NewPubSub(accountingStorage, false)
|
||||
var r string
|
||||
if err := ps.Subscribe(SubscribeInfo{
|
||||
EventName: "test",
|
||||
Transport: utils.META_HTTP_POST,
|
||||
Address: "url",
|
||||
LifeSpan: time.Second,
|
||||
}, &r); err != nil {
|
||||
t.Error("Error subscribing: ", err)
|
||||
}
|
||||
subs, err := accountingStorage.GetPubSubSubscribers()
|
||||
if err != nil || len(subs["test"]) != 1 {
|
||||
t.Error("Error saving subscribers: ", err, subs)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSubscribeNoTransport(t *testing.T) {
|
||||
ps := NewPubSub(accountingStorage, false)
|
||||
var r string
|
||||
@@ -75,6 +92,30 @@ func TestUnsubscribe(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestUnsubscribeSave(t *testing.T) {
|
||||
ps := NewPubSub(accountingStorage, false)
|
||||
var r string
|
||||
if err := ps.Subscribe(SubscribeInfo{
|
||||
EventName: "test",
|
||||
Transport: utils.META_HTTP_POST,
|
||||
Address: "url",
|
||||
LifeSpan: time.Second,
|
||||
}, &r); err != nil {
|
||||
t.Error("Error subscribing: ", err)
|
||||
}
|
||||
if err := ps.Unsubscribe(SubscribeInfo{
|
||||
EventName: "test",
|
||||
Transport: utils.META_HTTP_POST,
|
||||
Address: "url",
|
||||
}, &r); err != nil {
|
||||
t.Error("Error unsubscribing: ", err)
|
||||
}
|
||||
subs, err := accountingStorage.GetPubSubSubscribers()
|
||||
if err != nil || len(subs["test"]) != 0 {
|
||||
t.Error("Error saving subscribers: ", err, subs)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPublish(t *testing.T) {
|
||||
ps := NewPubSub(accountingStorage, true)
|
||||
ps.pubFunc = func(url string, ttl bool, obj interface{}) ([]byte, error) {
|
||||
@@ -134,3 +175,34 @@ func TestPublishExpired(t *testing.T) {
|
||||
t.Error("Error removing expired subscribers: ", ps.subscribers)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPublishExpiredSave(t *testing.T) {
|
||||
ps := NewPubSub(accountingStorage, true)
|
||||
ps.pubFunc = func(url string, ttl bool, obj interface{}) ([]byte, error) {
|
||||
m := obj.(map[string]string)
|
||||
m["called"] = "yes"
|
||||
return nil, nil
|
||||
}
|
||||
var r string
|
||||
if err := ps.Subscribe(SubscribeInfo{
|
||||
EventName: "test",
|
||||
Transport: utils.META_HTTP_POST,
|
||||
Address: "url",
|
||||
LifeSpan: 1,
|
||||
}, &r); err != nil {
|
||||
t.Error("Error subscribing: ", err)
|
||||
}
|
||||
subs, err := accountingStorage.GetPubSubSubscribers()
|
||||
if err != nil || len(subs["test"]) != 1 {
|
||||
t.Error("Error saving subscribers: ", err, subs)
|
||||
}
|
||||
if err := ps.Publish(PublishInfo{
|
||||
Event: map[string]string{"EventName": "test"},
|
||||
}, &r); err != nil {
|
||||
t.Error("Error publishing: ", err)
|
||||
}
|
||||
subs, err = accountingStorage.GetPubSubSubscribers()
|
||||
if err != nil || len(subs["test"]) != 0 {
|
||||
t.Error("Error saving subscribers: ", err, subs)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -575,7 +575,7 @@ func (ms *MapStorage) GetPubSubSubscribers() (result map[string]map[string]time.
|
||||
}
|
||||
func (ms *MapStorage) SetPubSubSubscribers(key string, subs map[string]time.Time) (err error) {
|
||||
result, err := ms.ms.Marshal(subs)
|
||||
ms.dict[utils.CDR_STATS_QUEUE_PREFIX+key] = result
|
||||
ms.dict[utils.PUBSUB_SUBSCRIBERS_PREFIX+key] = result
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user