mirror of
https://github.com/Luzifer/share.git
synced 2024-12-26 05:21:19 +00:00
44 lines
1.2 KiB
Go
44 lines
1.2 KiB
Go
|
package polly
|
||
|
|
||
|
import (
|
||
|
"regexp"
|
||
|
"testing"
|
||
|
"time"
|
||
|
|
||
|
"github.com/aws/aws-sdk-go/aws"
|
||
|
"github.com/aws/aws-sdk-go/awstesting/unit"
|
||
|
)
|
||
|
|
||
|
func TestRestGETStrategy(t *testing.T) {
|
||
|
svc := New(unit.Session, &aws.Config{Region: aws.String("us-west-2")})
|
||
|
r, _ := svc.SynthesizeSpeechRequest(nil)
|
||
|
|
||
|
if err := restGETPresignStrategy(r); err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
if "GET" != r.HTTPRequest.Method {
|
||
|
t.Errorf("Expected 'GET', but received %s", r.HTTPRequest.Method)
|
||
|
}
|
||
|
if r.Operation.BeforePresignFn == nil {
|
||
|
t.Error("Expected non-nil value for 'BeforePresignFn'")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestPresign(t *testing.T) {
|
||
|
svc := New(unit.Session, &aws.Config{Region: aws.String("us-west-2")})
|
||
|
r, _ := svc.SynthesizeSpeechRequest(&SynthesizeSpeechInput{
|
||
|
Text: aws.String("Moo"),
|
||
|
OutputFormat: aws.String("mp3"),
|
||
|
VoiceId: aws.String("Foo"),
|
||
|
})
|
||
|
url, err := r.Presign(time.Second)
|
||
|
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
expectedURL := `^https://polly.us-west-2.amazonaws.com/v1/speech\?.*?OutputFormat=mp3.*?Text=Moo.*?VoiceId=Foo.*`
|
||
|
if matched, err := regexp.MatchString(expectedURL, url); !matched || err != nil {
|
||
|
t.Errorf("Expected:\n%q\nReceived:\n%q\nError:\n%v\n", expectedURL, url, err)
|
||
|
}
|
||
|
}
|