File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -109,6 +109,10 @@ func ByteStreamProducer(opts ...byteStreamOpt) Producer {
109109 }
110110 defer close ()
111111
112+ if rc , ok := data .(io.ReadCloser ); ok {
113+ defer rc .Close ()
114+ }
115+
112116 if rdr , ok := data .(io.Reader ); ok {
113117 _ , err := io .Copy (writer , rdr )
114118 return err
Original file line number Diff line number Diff line change @@ -217,4 +217,14 @@ func TestBytestreamProducer_Close(t *testing.T) {
217217 assert .Equal (t , expected , r .String ())
218218 assert .EqualValues (t , 0 , r .calledClose )
219219 }
220+
221+ cons = ByteStreamProducer ()
222+ r = & closingWriter {}
223+ data := & closingReader {b : bytes .NewBufferString (expected )}
224+ // can produce using a readcloser
225+ if assert .NoError (t , cons .Produce (r , data )) {
226+ assert .Equal (t , expected , r .String ())
227+ assert .EqualValues (t , 0 , r .calledClose )
228+ assert .EqualValues (t , 1 , data .calledClose )
229+ }
220230}
You can’t perform that action at this time.
0 commit comments