aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Pu <michael.pu@uwaterloo.ca>2024-03-01 20:50:29 -0500
committerCecylia Bocovich <cohosh@torproject.org>2024-03-05 12:38:33 -0500
commit1e1f827248dd5b9345053a523c44527a20189ec4 (patch)
tree5262cae369a528d944b7b8cb094cdee1b85a2e94
parent9cd362f42de16c2347781a1222eb18015956e6a4 (diff)
downloadsnowflake-1e1f827248dd5b9345053a523c44527a20189ec4.tar.gz
snowflake-1e1f827248dd5b9345053a523c44527a20189ec4.zip
Update tests
-rw-r--r--client/lib/rendezvous_test.go86
1 files changed, 38 insertions, 48 deletions
diff --git a/client/lib/rendezvous_test.go b/client/lib/rendezvous_test.go
index d74aa0e..6589593 100644
--- a/client/lib/rendezvous_test.go
+++ b/client/lib/rendezvous_test.go
@@ -279,13 +279,14 @@ func TestAMPCacheRendezvous(t *testing.T) {
func TestSQSRendezvous(t *testing.T) {
Convey("SQS Rendezvous", t, func() {
+ var sendMessageInput *sqs.SendMessageInput
+ var getQueueUrlInput *sqs.GetQueueUrlInput
Convey("Construct SQS queue rendezvous", func() {
transport := &mockTransport{http.StatusOK, []byte{}}
rend, err := newSQSRendezvous("https://sqs.us-east-1.amazonaws.com", "some-access-key-id", "some-secret-key", transport)
So(err, ShouldBeNil)
- So(rend.sqsClientID, ShouldNotBeNil)
So(rend.sqsClient, ShouldNotBeNil)
So(rend.sqsURL, ShouldNotBeNil)
So(rend.sqsURL.String(), ShouldResemble, "https://sqs.us-east-1.amazonaws.com")
@@ -294,37 +295,32 @@ func TestSQSRendezvous(t *testing.T) {
ctrl := gomock.NewController(t)
mockSqsClient := sqsclient.NewMockSQSClient(ctrl)
responseQueueURL := "https://sqs.us-east-1.amazonaws.com/testing"
- sqsClientID := "test123"
sqsUrl, _ := url.Parse("https://sqs.us-east-1.amazonaws.com/broker")
fakeEncPollResp := makeEncPollResp(
`{"answer": "{\"type\":\"answer\",\"sdp\":\"fake\"}" }`,
"",
)
sqsRendezvous := sqsRendezvous{
- transport: &mockTransport{http.StatusOK, []byte{}},
- sqsClientID: sqsClientID,
- sqsClient: mockSqsClient,
- sqsURL: sqsUrl,
- timeout: 0,
- numRetries: 5,
+ transport: &mockTransport{http.StatusOK, []byte{}},
+ sqsClient: mockSqsClient,
+ sqsURL: sqsUrl,
+ timeout: 0,
+ numRetries: 5,
}
Convey("sqsRendezvous.Exchange responds with answer", func() {
- mockSqsClient.EXPECT().SendMessage(gomock.Any(), &sqs.SendMessageInput{
- MessageAttributes: map[string]types.MessageAttributeValue{
- "ClientID": {
- DataType: aws.String("String"),
- StringValue: aws.String(sqsClientID),
- },
- },
- MessageBody: aws.String(string(fakeEncPollResp)),
- QueueUrl: aws.String(sqsUrl.String()),
+ sqsClientId := ""
+ mockSqsClient.EXPECT().SendMessage(gomock.Any(), gomock.AssignableToTypeOf(sendMessageInput)).Do(func(ctx interface{}, input *sqs.SendMessageInput, optFns ...interface{}) {
+ So(*input.MessageBody, ShouldEqual, string(fakeEncPollResp))
+ So(*input.QueueUrl, ShouldEqual, sqsUrl.String())
+ sqsClientId = *input.MessageAttributes["ClientID"].StringValue
+ })
+ mockSqsClient.EXPECT().GetQueueUrl(gomock.Any(), gomock.AssignableToTypeOf(getQueueUrlInput)).DoAndReturn(func(ctx interface{}, input *sqs.GetQueueUrlInput, optFns ...interface{}) (*sqs.GetQueueUrlOutput, error) {
+ So(*input.QueueName, ShouldEqual, "snowflake-client-"+sqsClientId)
+ return &sqs.GetQueueUrlOutput{
+ QueueUrl: aws.String(responseQueueURL),
+ }, nil
})
- mockSqsClient.EXPECT().GetQueueUrl(gomock.Any(), &sqs.GetQueueUrlInput{
- QueueName: aws.String("snowflake-client-" + sqsClientID),
- }).Return(&sqs.GetQueueUrlOutput{
- QueueUrl: aws.String(responseQueueURL),
- }, nil)
mockSqsClient.EXPECT().ReceiveMessage(gomock.Any(), gomock.Eq(&sqs.ReceiveMessageInput{
QueueUrl: &responseQueueURL,
MaxNumberOfMessages: 1,
@@ -340,20 +336,17 @@ func TestSQSRendezvous(t *testing.T) {
})
Convey("sqsRendezvous.Exchange cannot get queue url", func() {
- mockSqsClient.EXPECT().SendMessage(gomock.Any(), &sqs.SendMessageInput{
- MessageAttributes: map[string]types.MessageAttributeValue{
- "ClientID": {
- DataType: aws.String("String"),
- StringValue: aws.String(sqsClientID),
- },
- },
- MessageBody: aws.String(string(fakeEncPollResp)),
- QueueUrl: aws.String(sqsUrl.String()),
+ sqsClientId := ""
+ mockSqsClient.EXPECT().SendMessage(gomock.Any(), gomock.AssignableToTypeOf(sendMessageInput)).Do(func(ctx interface{}, input *sqs.SendMessageInput, optFns ...interface{}) {
+ So(*input.MessageBody, ShouldEqual, string(fakeEncPollResp))
+ So(*input.QueueUrl, ShouldEqual, sqsUrl.String())
+ sqsClientId = *input.MessageAttributes["ClientID"].StringValue
})
for i := 0; i < sqsRendezvous.numRetries; i++ {
- mockSqsClient.EXPECT().GetQueueUrl(gomock.Any(), &sqs.GetQueueUrlInput{
- QueueName: aws.String("snowflake-client-" + sqsClientID),
- }).Return(nil, errors.New("test error"))
+ mockSqsClient.EXPECT().GetQueueUrl(gomock.Any(), gomock.AssignableToTypeOf(getQueueUrlInput)).DoAndReturn(func(ctx interface{}, input *sqs.GetQueueUrlInput, optFns ...interface{}) (*sqs.GetQueueUrlOutput, error) {
+ So(*input.QueueName, ShouldEqual, "snowflake-client-"+sqsClientId)
+ return nil, errors.New("test error")
+ })
}
answer, err := sqsRendezvous.Exchange(fakeEncPollResp)
@@ -364,21 +357,18 @@ func TestSQSRendezvous(t *testing.T) {
})
Convey("sqsRendezvous.Exchange does not receive answer", func() {
- mockSqsClient.EXPECT().SendMessage(gomock.Any(), &sqs.SendMessageInput{
- MessageAttributes: map[string]types.MessageAttributeValue{
- "ClientID": {
- DataType: aws.String("String"),
- StringValue: aws.String(sqsClientID),
- },
- },
- MessageBody: aws.String(string(fakeEncPollResp)),
- QueueUrl: aws.String(sqsUrl.String()),
+ sqsClientId := ""
+ mockSqsClient.EXPECT().SendMessage(gomock.Any(), gomock.AssignableToTypeOf(sendMessageInput)).Do(func(ctx interface{}, input *sqs.SendMessageInput, optFns ...interface{}) {
+ So(*input.MessageBody, ShouldEqual, string(fakeEncPollResp))
+ So(*input.QueueUrl, ShouldEqual, sqsUrl.String())
+ sqsClientId = *input.MessageAttributes["ClientID"].StringValue
+ })
+ mockSqsClient.EXPECT().GetQueueUrl(gomock.Any(), gomock.AssignableToTypeOf(getQueueUrlInput)).DoAndReturn(func(ctx interface{}, input *sqs.GetQueueUrlInput, optFns ...interface{}) (*sqs.GetQueueUrlOutput, error) {
+ So(*input.QueueName, ShouldEqual, "snowflake-client-"+sqsClientId)
+ return &sqs.GetQueueUrlOutput{
+ QueueUrl: aws.String(responseQueueURL),
+ }, nil
})
- mockSqsClient.EXPECT().GetQueueUrl(gomock.Any(), &sqs.GetQueueUrlInput{
- QueueName: aws.String("snowflake-client-" + sqsClientID),
- }).Return(&sqs.GetQueueUrlOutput{
- QueueUrl: aws.String(responseQueueURL),
- }, nil)
for i := 0; i < sqsRendezvous.numRetries; i++ {
mockSqsClient.EXPECT().ReceiveMessage(gomock.Any(), gomock.Eq(&sqs.ReceiveMessageInput{
QueueUrl: &responseQueueURL,