1package awstesting_test 2 3import ( 4 "io" 5 "testing" 6 7 "github.com/aws/aws-sdk-go/awstesting" 8) 9 10func TestReadCloserClose(t *testing.T) { 11 rc := awstesting.ReadCloser{Size: 1} 12 err := rc.Close() 13 14 if err != nil { 15 t.Errorf("expect nil, got %v", err) 16 } 17 if !rc.Closed { 18 t.Errorf("expect closed, was not") 19 } 20 if e, a := rc.Size, 1; e != a { 21 t.Errorf("expect %v, got %v", e, a) 22 } 23} 24 25func TestReadCloserRead(t *testing.T) { 26 rc := awstesting.ReadCloser{Size: 5} 27 b := make([]byte, 2) 28 29 n, err := rc.Read(b) 30 31 if err != nil { 32 t.Errorf("expect nil, got %v", err) 33 } 34 if e, a := n, 2; e != a { 35 t.Errorf("expect %v, got %v", e, a) 36 } 37 if rc.Closed { 38 t.Errorf("expect not to be closed") 39 } 40 if e, a := rc.Size, 3; e != a { 41 t.Errorf("expect %v, got %v", e, a) 42 } 43 44 err = rc.Close() 45 if err != nil { 46 t.Errorf("expect nil, got %v", err) 47 } 48 n, err = rc.Read(b) 49 if e, a := err, io.EOF; e != a { 50 t.Errorf("expect %v, got %v", e, a) 51 } 52 if e, a := n, 0; e != a { 53 t.Errorf("expect %v, got %v", e, a) 54 } 55} 56 57func TestReadCloserReadAll(t *testing.T) { 58 rc := awstesting.ReadCloser{Size: 5} 59 b := make([]byte, 5) 60 61 n, err := rc.Read(b) 62 63 if e, a := err, io.EOF; e != a { 64 t.Errorf("expect %v, got %v", e, a) 65 } 66 if e, a := n, 5; e != a { 67 t.Errorf("expect %v, got %v", e, a) 68 } 69 if rc.Closed { 70 t.Errorf("expect not to be closed") 71 } 72 if e, a := rc.Size, 0; e != a { 73 t.Errorf("expect %v, got %v", e, a) 74 } 75} 76