From 285936f02bdbc3afeb59b692ccd7674ac2ac3611 Mon Sep 17 00:00:00 2001 From: Radu Ioan Fericean Date: Thu, 2 Jul 2015 10:15:42 +0300 Subject: [PATCH] added tests for pubusub save function --- engine/pubsub_test.go | 72 +++++++++++++++++++++++++++++++++++++++++++ engine/storage_map.go | 2 +- 2 files changed, 73 insertions(+), 1 deletion(-) diff --git a/engine/pubsub_test.go b/engine/pubsub_test.go index 6571604ee..d693414f0 100644 --- a/engine/pubsub_test.go +++ b/engine/pubsub_test.go @@ -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) + } +} diff --git a/engine/storage_map.go b/engine/storage_map.go index 01ec265c8..f64d00d73 100644 --- a/engine/storage_map.go +++ b/engine/storage_map.go @@ -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 }