add some unit tests

Signed-off-by: Joni Collinge <jonathancollinge@live.com>
This commit is contained in:
Joni Collinge 2022-12-09 11:59:22 +00:00
parent a7d6bdecfc
commit 72e9676c5a
No known key found for this signature in database
GPG Key ID: BF9B59005264DD95
2 changed files with 49 additions and 2 deletions

View File

@ -42,6 +42,7 @@ var (
testSampleTime = time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC) testSampleTime = time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC)
testSampleTimeHTTPFormat = "Thu, 01 Jan 1970 00:00:00 GMT" testSampleTimeHTTPFormat = "Thu, 01 Jan 1970 00:00:00 GMT"
testSequenceNumber = int64(1) testSequenceNumber = int64(1)
testBlankSessionID = ""
) )
func TestAddMetadataToMessage(t *testing.T) { func TestAddMetadataToMessage(t *testing.T) {
@ -50,6 +51,7 @@ func TestAddMetadataToMessage(t *testing.T) {
metadata map[string]string metadata map[string]string
expectedAzServiceBusMessage azservicebus.Message expectedAzServiceBusMessage azservicebus.Message
expectError bool expectError bool
options ASBMessageOptions
}{ }{
{ {
name: "Maps pubsub request to azure service bus message.", name: "Maps pubsub request to azure service bus message.",
@ -76,6 +78,7 @@ func TestAddMetadataToMessage(t *testing.T) {
ContentType: &testContentType, ContentType: &testContentType,
}, },
expectError: false, expectError: false,
options: ASBMessageOptions{},
}, },
{ {
name: "Errors when partition key and session id set but not equal.", name: "Errors when partition key and session id set but not equal.",
@ -100,6 +103,35 @@ func TestAddMetadataToMessage(t *testing.T) {
ContentType: &testContentType, ContentType: &testContentType,
}, },
expectError: true, expectError: true,
options: ASBMessageOptions{},
},
{
name: "Set a blank session id when none provided but required.",
metadata: map[string]string{
MessageKeyMessageID: testMessageID,
MessageKeyCorrelationID: testCorrelationID,
MessageKeyLabel: testLabel,
MessageKeyReplyTo: testReplyTo,
MessageKeyTo: testTo,
MessageKeyPartitionKey: testPartitionKey,
MessageKeyContentType: testContentType,
MessageKeyScheduledEnqueueTimeUtc: testScheduledEnqueueTimeUtc,
},
expectedAzServiceBusMessage: azservicebus.Message{
MessageID: &testMessageID,
CorrelationID: &testCorrelationID,
SessionID: &testBlankSessionID,
Subject: &testLabel,
ReplyTo: &testReplyTo,
To: &testTo,
PartitionKey: &testPartitionKey,
ScheduledEnqueueTime: &nowUtc,
ContentType: &testContentType,
},
expectError: false,
options: ASBMessageOptions{
RequireSessions: true,
},
}, },
} }
@ -107,7 +139,7 @@ func TestAddMetadataToMessage(t *testing.T) {
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
// act. // act.
msg := &azservicebus.Message{} msg := &azservicebus.Message{}
err := addMetadataToMessage(msg, tc.metadata, ASBMessageOptions{}) err := addMetadataToMessage(msg, tc.metadata, tc.options)
// assert. // assert.
if tc.expectError { if tc.expectError {

View File

@ -27,30 +27,42 @@ func TestNewSubscription(t *testing.T) {
maxBulkSubCountParam *int maxBulkSubCountParam *int
maxBulkSubCountExpected int maxBulkSubCountExpected int
activeOperationsChanCapExpected int activeOperationsChanCapExpected int
requireSessionsParam bool
}{ }{
{ {
"maxBulkSubCount passed is 0", "maxBulkSubCount passed is 0",
ptr.Of(0), ptr.Of(0),
1, 1,
1000, 1000,
false,
}, },
{ {
"maxBulkSubCount passed is negative", "maxBulkSubCount passed is negative",
ptr.Of(-100), ptr.Of(-100),
1, 1,
1000, 1000,
false,
}, },
{ {
"maxBulkSubCount passed is positive", "maxBulkSubCount passed is positive",
ptr.Of(100), ptr.Of(100),
100, 100,
10, 10,
false,
}, },
{ {
"maxBulkSubCount passed is nil", "maxBulkSubCount passed is nil",
nil, nil,
1, 1,
1000, 1000,
false,
},
{
"requireSessions is true",
ptr.Of(0),
1,
1000,
true,
}, },
} }
for _, tc := range testcases { for _, tc := range testcases {
@ -64,7 +76,7 @@ func TestNewSubscription(t *testing.T) {
100, 100,
"test", "test",
30, 30,
false, tc.requireSessionsParam,
logger.NewLogger("test"), logger.NewLogger("test"),
) )
if sub.maxBulkSubCount != tc.maxBulkSubCountExpected { if sub.maxBulkSubCount != tc.maxBulkSubCountExpected {
@ -73,6 +85,9 @@ func TestNewSubscription(t *testing.T) {
if cap(sub.activeOperationsChan) != tc.activeOperationsChanCapExpected { if cap(sub.activeOperationsChan) != tc.activeOperationsChanCapExpected {
t.Errorf("Expected capacity of sub.activeOperationsChan to be %d but got %d", tc.activeOperationsChanCapExpected, cap(sub.activeOperationsChan)) t.Errorf("Expected capacity of sub.activeOperationsChan to be %d but got %d", tc.activeOperationsChanCapExpected, cap(sub.activeOperationsChan))
} }
if sub.requireSessions != tc.requireSessionsParam {
t.Errorf("Expected requireSessions to be %t but got %t", tc.requireSessionsParam, sub.requireSessions)
}
}) })
} }
} }