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)
testSampleTimeHTTPFormat = "Thu, 01 Jan 1970 00:00:00 GMT"
testSequenceNumber = int64(1)
testBlankSessionID = ""
)
func TestAddMetadataToMessage(t *testing.T) {
@ -50,6 +51,7 @@ func TestAddMetadataToMessage(t *testing.T) {
metadata map[string]string
expectedAzServiceBusMessage azservicebus.Message
expectError bool
options ASBMessageOptions
}{
{
name: "Maps pubsub request to azure service bus message.",
@ -76,6 +78,7 @@ func TestAddMetadataToMessage(t *testing.T) {
ContentType: &testContentType,
},
expectError: false,
options: ASBMessageOptions{},
},
{
name: "Errors when partition key and session id set but not equal.",
@ -100,6 +103,35 @@ func TestAddMetadataToMessage(t *testing.T) {
ContentType: &testContentType,
},
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) {
// act.
msg := &azservicebus.Message{}
err := addMetadataToMessage(msg, tc.metadata, ASBMessageOptions{})
err := addMetadataToMessage(msg, tc.metadata, tc.options)
// assert.
if tc.expectError {

View File

@ -27,30 +27,42 @@ func TestNewSubscription(t *testing.T) {
maxBulkSubCountParam *int
maxBulkSubCountExpected int
activeOperationsChanCapExpected int
requireSessionsParam bool
}{
{
"maxBulkSubCount passed is 0",
ptr.Of(0),
1,
1000,
false,
},
{
"maxBulkSubCount passed is negative",
ptr.Of(-100),
1,
1000,
false,
},
{
"maxBulkSubCount passed is positive",
ptr.Of(100),
100,
10,
false,
},
{
"maxBulkSubCount passed is nil",
nil,
1,
1000,
false,
},
{
"requireSessions is true",
ptr.Of(0),
1,
1000,
true,
},
}
for _, tc := range testcases {
@ -64,7 +76,7 @@ func TestNewSubscription(t *testing.T) {
100,
"test",
30,
false,
tc.requireSessionsParam,
logger.NewLogger("test"),
)
if sub.maxBulkSubCount != tc.maxBulkSubCountExpected {
@ -73,6 +85,9 @@ func TestNewSubscription(t *testing.T) {
if cap(sub.activeOperationsChan) != tc.activeOperationsChanCapExpected {
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)
}
})
}
}