...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package resource_test
18
19 import (
20 "testing"
21
22 "solace.dev/go/messaging/pkg/solace/resource"
23 )
24
25 func TestValidShareNameOf(t *testing.T) {
26 shareName := "mysharename"
27 share := resource.ShareNameOf(shareName)
28 if share == nil {
29 t.Errorf("Expected share to not be nil, got nil")
30 }
31 if share.GetName() != shareName {
32 t.Errorf("Expected share name to equal %s, got %s", shareName, share.GetName())
33 }
34 }
35
36 func TestValidTopicSubscription(t *testing.T) {
37 topicSubscriptionExpression := "mytopicsubscription"
38 topicSubscription := resource.TopicSubscriptionOf(topicSubscriptionExpression)
39 if topicSubscription == nil {
40 t.Errorf("Expected topic subscription to not be nil, got nil")
41 }
42 if topicSubscription.GetName() != topicSubscriptionExpression {
43 t.Errorf("Expected topic subscription name to equal %s, got %s", topicSubscriptionExpression, topicSubscription.GetName())
44 }
45 }
46
47 func TestValidQueue(t *testing.T) {
48 queueName := "myqueue"
49 queue := resource.QueueDurableExclusive(queueName)
50 if queue == nil {
51 t.Errorf("Expected queue to not be nil, got nil")
52 }
53 if queue.GetName() != queueName {
54 t.Errorf("Expected queue name to equal %s, got %s", queueName, queue.GetName())
55 }
56 }
57
58 func TestNewCachedMessageSubscriptionRequest(t *testing.T) {
59 const cacheName = "test-cache"
60 const subscriptionString = "some-subscription"
61 subscription := resource.TopicSubscriptionOf(subscriptionString)
62 const cacheAccessTimeout = 3001
63 const maxCachedMessages = 5
64 const cachedMessageAge = 15
65 cachedMessageSubscriptionRequest := resource.NewCachedMessageSubscriptionRequest(resource.CacheRequestStrategyLiveCancelsCached,
66 cacheName, subscription, cacheAccessTimeout, maxCachedMessages, cachedMessageAge)
67
68 if *(cachedMessageSubscriptionRequest.GetCachedMessageSubscriptionRequestStrategy()) != resource.CacheRequestStrategyLiveCancelsCached {
69 t.Error("Expected GetCachedMessageSubscriptionRequestStrategy() to match passed in cachedMessageSubscriptionStrategy when NewCachedMessageSubscriptionRequest() called with valid cachedMessageSubscriptionStrategy.")
70 }
71 if cachedMessageSubscriptionRequest.GetCacheName() != cacheName {
72 t.Error("Expected GetCacheName() to match CacheName when NewCachedMessageSubscriptionRequest() called with valid cacheName.")
73 }
74 if cachedMessageSubscriptionRequest.GetName() != subscriptionString {
75 t.Error("Expected GetName() to match passed in topic subscription name when NewCachedMessageSubscriptionRequest() called with valid subscription.")
76 }
77 if cachedMessageSubscriptionRequest.GetCacheAccessTimeout() != cacheAccessTimeout {
78 t.Error("Expected GetCacheAccessTimeout() to match passed in cacheAccessTimeout when NewCachedMessageSubscriptionRequest() called with valid cacheAccessTimeout.")
79 }
80 if cachedMessageSubscriptionRequest.GetMaxCachedMessages() != maxCachedMessages {
81 t.Error("Expected GetMaxCachedMessages() to match passed in maxCachedMessages when NewCachedMessageSubscriptionRequest() called with valid maxCachedMessages.")
82 }
83 if cachedMessageSubscriptionRequest.GetCachedMessageAge() != cachedMessageAge {
84 t.Error("Expected GetCachedMessageAge() to match passed in cachedMessageAge when NewCachedMessageSubscriptionRequest() called with valid cachedMessageAge.")
85 }
86 }
87
88 func TestNewCachedMessageSubscriptionRequestWithInvalidCachedMessageSubscriptionStrategy(t *testing.T) {
89 const cacheName = "test-cache"
90 const subscriptionString = "some-subscription"
91 subscription := resource.TopicSubscriptionOf(subscriptionString)
92 const invalidCachedMessageSubscriptionStrategy = -1
93 const cacheAccessTimeout = 3001
94 const maxCachedMessages = 5
95 const cachedMessageAge = 15
96 cachedMessageSubscriptionRequest := resource.NewCachedMessageSubscriptionRequest(invalidCachedMessageSubscriptionStrategy,
97 cacheName, subscription, cacheAccessTimeout, maxCachedMessages, cachedMessageAge)
98
99 if cachedMessageSubscriptionRequest.GetCachedMessageSubscriptionRequestStrategy() != nil {
100 t.Error("Expected nil cachedMessageSubscriptionStrategy in returned struct with invalid cachedMessageSubscriptionStrategy (-1)")
101 }
102 }
103
104 func TestNewCachedMessageSubscriptionRequestWithEmptyCacheName(t *testing.T) {
105 const cacheName = ""
106 const subscriptionString = "some-subscription"
107 subscription := resource.TopicSubscriptionOf(subscriptionString)
108 const cacheAccessTimeout = 5000
109 const maxCachedMessages = 5
110 const cachedMessageAge = 15
111 cachedMessageSubscriptionRequest := resource.NewCachedMessageSubscriptionRequest(resource.CacheRequestStrategyAsAvailable,
112 cacheName, subscription, cacheAccessTimeout, maxCachedMessages, cachedMessageAge)
113
114 if cachedMessageSubscriptionRequest.GetCacheName() != "" {
115 t.Error("Expected CacheName to be empty when NewCachedMessageSubscriptionRequest() called with empty cacheName")
116 }
117 }
118
119 func TestNewCachedMessageSubscriptionRequestWithNilSubscription(t *testing.T) {
120 const cacheName = "test-cache"
121 const cacheAccessTimeout = 5000
122 const maxCachedMessages = 5
123 const cachedMessageAge = 15
124 cachedMessageSubscriptionRequest := resource.NewCachedMessageSubscriptionRequest(resource.CacheRequestStrategyAsAvailable,
125 cacheName, nil, cacheAccessTimeout, maxCachedMessages, cachedMessageAge)
126
127 if cachedMessageSubscriptionRequest.GetName() != "" {
128 t.Error("Expected topic subscription to be nil when NewCachedMessageSubscriptionRequest() called with nil topic subscription")
129 }
130 }
131