github.com/aavshr/aws-sdk-go@v1.41.3/service/transcribestreamingservice/unit_test.go (about) 1 //go:build go1.10 2 // +build go1.10 3 4 package transcribestreamingservice 5 6 import ( 7 "bytes" 8 "io/ioutil" 9 "net/http" 10 "strings" 11 "testing" 12 13 "github.com/aavshr/aws-sdk-go/aws" 14 "github.com/aavshr/aws-sdk-go/aws/credentials" 15 "github.com/aavshr/aws-sdk-go/aws/session" 16 ) 17 18 type roundTripFunc func(req *http.Request) *http.Response 19 20 func (f roundTripFunc) RoundTrip(req *http.Request) (*http.Response, error) { 21 return f(req), nil 22 } 23 24 func newTestClient(fn roundTripFunc) *http.Client { 25 return &http.Client{ 26 Transport: fn, 27 } 28 } 29 30 func TestStartStreamTranscription_Error(t *testing.T) { 31 cfg := &aws.Config{ 32 Region: aws.String("us-west-2"), 33 Credentials: credentials.AnonymousCredentials, 34 HTTPClient: newTestClient(func(req *http.Request) *http.Response { 35 return &http.Response{ 36 StatusCode: http.StatusBadRequest, 37 Body: ioutil.NopCloser(bytes.NewReader([]byte("{ \"code\" : \"BadRequestException\" }"))), 38 Header: http.Header{}, 39 } 40 }), 41 } 42 sess, err := session.NewSession(cfg) 43 44 svc := New(sess) 45 resp, err := svc.StartStreamTranscription(&StartStreamTranscriptionInput{ 46 LanguageCode: aws.String(LanguageCodeEnUs), 47 MediaEncoding: aws.String(MediaEncodingPcm), 48 MediaSampleRateHertz: aws.Int64(int64(16000)), 49 }) 50 if err == nil { 51 t.Fatalf("expect error, got none") 52 } else { 53 if e, a := "BadRequestException", err.Error(); !strings.Contains(a, e) { 54 t.Fatalf("expected error to be %v, got %v", e, a) 55 } 56 } 57 58 n, err := resp.GetStream().inputWriter.Write([]byte("text")) 59 if err == nil { 60 t.Fatalf("expected error stating write on closed pipe, got none") 61 } 62 63 if e, a := "write on closed pipe", err.Error(); !strings.Contains(a, e) { 64 t.Fatalf("expected error to contain %v, got error as %v", e, a) 65 } 66 67 if e, a := 0, n; e != a { 68 t.Fatalf("expected %d bytes to be written on inputWriter, but %v bytes were written", e, a) 69 } 70 }