mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-14 05:11:19 -04:00
Update tests
This commit is contained in:
parent
9cd362f42d
commit
1e1f827248
1 changed files with 38 additions and 48 deletions
|
@ -279,13 +279,14 @@ func TestAMPCacheRendezvous(t *testing.T) {
|
||||||
|
|
||||||
func TestSQSRendezvous(t *testing.T) {
|
func TestSQSRendezvous(t *testing.T) {
|
||||||
Convey("SQS Rendezvous", t, func() {
|
Convey("SQS Rendezvous", t, func() {
|
||||||
|
var sendMessageInput *sqs.SendMessageInput
|
||||||
|
var getQueueUrlInput *sqs.GetQueueUrlInput
|
||||||
|
|
||||||
Convey("Construct SQS queue rendezvous", func() {
|
Convey("Construct SQS queue rendezvous", func() {
|
||||||
transport := &mockTransport{http.StatusOK, []byte{}}
|
transport := &mockTransport{http.StatusOK, []byte{}}
|
||||||
rend, err := newSQSRendezvous("https://sqs.us-east-1.amazonaws.com", "some-access-key-id", "some-secret-key", transport)
|
rend, err := newSQSRendezvous("https://sqs.us-east-1.amazonaws.com", "some-access-key-id", "some-secret-key", transport)
|
||||||
|
|
||||||
So(err, ShouldBeNil)
|
So(err, ShouldBeNil)
|
||||||
So(rend.sqsClientID, ShouldNotBeNil)
|
|
||||||
So(rend.sqsClient, ShouldNotBeNil)
|
So(rend.sqsClient, ShouldNotBeNil)
|
||||||
So(rend.sqsURL, ShouldNotBeNil)
|
So(rend.sqsURL, ShouldNotBeNil)
|
||||||
So(rend.sqsURL.String(), ShouldResemble, "https://sqs.us-east-1.amazonaws.com")
|
So(rend.sqsURL.String(), ShouldResemble, "https://sqs.us-east-1.amazonaws.com")
|
||||||
|
@ -294,7 +295,6 @@ func TestSQSRendezvous(t *testing.T) {
|
||||||
ctrl := gomock.NewController(t)
|
ctrl := gomock.NewController(t)
|
||||||
mockSqsClient := sqsclient.NewMockSQSClient(ctrl)
|
mockSqsClient := sqsclient.NewMockSQSClient(ctrl)
|
||||||
responseQueueURL := "https://sqs.us-east-1.amazonaws.com/testing"
|
responseQueueURL := "https://sqs.us-east-1.amazonaws.com/testing"
|
||||||
sqsClientID := "test123"
|
|
||||||
sqsUrl, _ := url.Parse("https://sqs.us-east-1.amazonaws.com/broker")
|
sqsUrl, _ := url.Parse("https://sqs.us-east-1.amazonaws.com/broker")
|
||||||
fakeEncPollResp := makeEncPollResp(
|
fakeEncPollResp := makeEncPollResp(
|
||||||
`{"answer": "{\"type\":\"answer\",\"sdp\":\"fake\"}" }`,
|
`{"answer": "{\"type\":\"answer\",\"sdp\":\"fake\"}" }`,
|
||||||
|
@ -302,7 +302,6 @@ func TestSQSRendezvous(t *testing.T) {
|
||||||
)
|
)
|
||||||
sqsRendezvous := sqsRendezvous{
|
sqsRendezvous := sqsRendezvous{
|
||||||
transport: &mockTransport{http.StatusOK, []byte{}},
|
transport: &mockTransport{http.StatusOK, []byte{}},
|
||||||
sqsClientID: sqsClientID,
|
|
||||||
sqsClient: mockSqsClient,
|
sqsClient: mockSqsClient,
|
||||||
sqsURL: sqsUrl,
|
sqsURL: sqsUrl,
|
||||||
timeout: 0,
|
timeout: 0,
|
||||||
|
@ -310,21 +309,18 @@ func TestSQSRendezvous(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Convey("sqsRendezvous.Exchange responds with answer", func() {
|
Convey("sqsRendezvous.Exchange responds with answer", func() {
|
||||||
mockSqsClient.EXPECT().SendMessage(gomock.Any(), &sqs.SendMessageInput{
|
sqsClientId := ""
|
||||||
MessageAttributes: map[string]types.MessageAttributeValue{
|
mockSqsClient.EXPECT().SendMessage(gomock.Any(), gomock.AssignableToTypeOf(sendMessageInput)).Do(func(ctx interface{}, input *sqs.SendMessageInput, optFns ...interface{}) {
|
||||||
"ClientID": {
|
So(*input.MessageBody, ShouldEqual, string(fakeEncPollResp))
|
||||||
DataType: aws.String("String"),
|
So(*input.QueueUrl, ShouldEqual, sqsUrl.String())
|
||||||
StringValue: aws.String(sqsClientID),
|
sqsClientId = *input.MessageAttributes["ClientID"].StringValue
|
||||||
},
|
|
||||||
},
|
|
||||||
MessageBody: aws.String(string(fakeEncPollResp)),
|
|
||||||
QueueUrl: aws.String(sqsUrl.String()),
|
|
||||||
})
|
})
|
||||||
mockSqsClient.EXPECT().GetQueueUrl(gomock.Any(), &sqs.GetQueueUrlInput{
|
mockSqsClient.EXPECT().GetQueueUrl(gomock.Any(), gomock.AssignableToTypeOf(getQueueUrlInput)).DoAndReturn(func(ctx interface{}, input *sqs.GetQueueUrlInput, optFns ...interface{}) (*sqs.GetQueueUrlOutput, error) {
|
||||||
QueueName: aws.String("snowflake-client-" + sqsClientID),
|
So(*input.QueueName, ShouldEqual, "snowflake-client-"+sqsClientId)
|
||||||
}).Return(&sqs.GetQueueUrlOutput{
|
return &sqs.GetQueueUrlOutput{
|
||||||
QueueUrl: aws.String(responseQueueURL),
|
QueueUrl: aws.String(responseQueueURL),
|
||||||
}, nil)
|
}, nil
|
||||||
|
})
|
||||||
mockSqsClient.EXPECT().ReceiveMessage(gomock.Any(), gomock.Eq(&sqs.ReceiveMessageInput{
|
mockSqsClient.EXPECT().ReceiveMessage(gomock.Any(), gomock.Eq(&sqs.ReceiveMessageInput{
|
||||||
QueueUrl: &responseQueueURL,
|
QueueUrl: &responseQueueURL,
|
||||||
MaxNumberOfMessages: 1,
|
MaxNumberOfMessages: 1,
|
||||||
|
@ -340,20 +336,17 @@ func TestSQSRendezvous(t *testing.T) {
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("sqsRendezvous.Exchange cannot get queue url", func() {
|
Convey("sqsRendezvous.Exchange cannot get queue url", func() {
|
||||||
mockSqsClient.EXPECT().SendMessage(gomock.Any(), &sqs.SendMessageInput{
|
sqsClientId := ""
|
||||||
MessageAttributes: map[string]types.MessageAttributeValue{
|
mockSqsClient.EXPECT().SendMessage(gomock.Any(), gomock.AssignableToTypeOf(sendMessageInput)).Do(func(ctx interface{}, input *sqs.SendMessageInput, optFns ...interface{}) {
|
||||||
"ClientID": {
|
So(*input.MessageBody, ShouldEqual, string(fakeEncPollResp))
|
||||||
DataType: aws.String("String"),
|
So(*input.QueueUrl, ShouldEqual, sqsUrl.String())
|
||||||
StringValue: aws.String(sqsClientID),
|
sqsClientId = *input.MessageAttributes["ClientID"].StringValue
|
||||||
},
|
|
||||||
},
|
|
||||||
MessageBody: aws.String(string(fakeEncPollResp)),
|
|
||||||
QueueUrl: aws.String(sqsUrl.String()),
|
|
||||||
})
|
})
|
||||||
for i := 0; i < sqsRendezvous.numRetries; i++ {
|
for i := 0; i < sqsRendezvous.numRetries; i++ {
|
||||||
mockSqsClient.EXPECT().GetQueueUrl(gomock.Any(), &sqs.GetQueueUrlInput{
|
mockSqsClient.EXPECT().GetQueueUrl(gomock.Any(), gomock.AssignableToTypeOf(getQueueUrlInput)).DoAndReturn(func(ctx interface{}, input *sqs.GetQueueUrlInput, optFns ...interface{}) (*sqs.GetQueueUrlOutput, error) {
|
||||||
QueueName: aws.String("snowflake-client-" + sqsClientID),
|
So(*input.QueueName, ShouldEqual, "snowflake-client-"+sqsClientId)
|
||||||
}).Return(nil, errors.New("test error"))
|
return nil, errors.New("test error")
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
answer, err := sqsRendezvous.Exchange(fakeEncPollResp)
|
answer, err := sqsRendezvous.Exchange(fakeEncPollResp)
|
||||||
|
@ -364,21 +357,18 @@ func TestSQSRendezvous(t *testing.T) {
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("sqsRendezvous.Exchange does not receive answer", func() {
|
Convey("sqsRendezvous.Exchange does not receive answer", func() {
|
||||||
mockSqsClient.EXPECT().SendMessage(gomock.Any(), &sqs.SendMessageInput{
|
sqsClientId := ""
|
||||||
MessageAttributes: map[string]types.MessageAttributeValue{
|
mockSqsClient.EXPECT().SendMessage(gomock.Any(), gomock.AssignableToTypeOf(sendMessageInput)).Do(func(ctx interface{}, input *sqs.SendMessageInput, optFns ...interface{}) {
|
||||||
"ClientID": {
|
So(*input.MessageBody, ShouldEqual, string(fakeEncPollResp))
|
||||||
DataType: aws.String("String"),
|
So(*input.QueueUrl, ShouldEqual, sqsUrl.String())
|
||||||
StringValue: aws.String(sqsClientID),
|
sqsClientId = *input.MessageAttributes["ClientID"].StringValue
|
||||||
},
|
|
||||||
},
|
|
||||||
MessageBody: aws.String(string(fakeEncPollResp)),
|
|
||||||
QueueUrl: aws.String(sqsUrl.String()),
|
|
||||||
})
|
})
|
||||||
mockSqsClient.EXPECT().GetQueueUrl(gomock.Any(), &sqs.GetQueueUrlInput{
|
mockSqsClient.EXPECT().GetQueueUrl(gomock.Any(), gomock.AssignableToTypeOf(getQueueUrlInput)).DoAndReturn(func(ctx interface{}, input *sqs.GetQueueUrlInput, optFns ...interface{}) (*sqs.GetQueueUrlOutput, error) {
|
||||||
QueueName: aws.String("snowflake-client-" + sqsClientID),
|
So(*input.QueueName, ShouldEqual, "snowflake-client-"+sqsClientId)
|
||||||
}).Return(&sqs.GetQueueUrlOutput{
|
return &sqs.GetQueueUrlOutput{
|
||||||
QueueUrl: aws.String(responseQueueURL),
|
QueueUrl: aws.String(responseQueueURL),
|
||||||
}, nil)
|
}, nil
|
||||||
|
})
|
||||||
for i := 0; i < sqsRendezvous.numRetries; i++ {
|
for i := 0; i < sqsRendezvous.numRetries; i++ {
|
||||||
mockSqsClient.EXPECT().ReceiveMessage(gomock.Any(), gomock.Eq(&sqs.ReceiveMessageInput{
|
mockSqsClient.EXPECT().ReceiveMessage(gomock.Any(), gomock.Eq(&sqs.ReceiveMessageInput{
|
||||||
QueueUrl: &responseQueueURL,
|
QueueUrl: &responseQueueURL,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue