| 28 | 28 |
|
| 29 | 29 |
type testWriterTo struct {
|
| 30 | 30 |
*testReader
|
| 31 | |
wt io.WriterTo
|
|
31 |
called bool
|
| 32 | 32 |
}
|
| 33 | 33 |
|
| 34 | |
func (wt testWriterTo) WriteTo(w io.Writer) (n int64, err error) {
|
|
34 |
func (wt *testWriterTo) WriteTo(w io.Writer) (n int64, err error) {
|
| 35 | 35 |
wt.called = true
|
| 36 | |
return wt.wt.WriteTo(w)
|
|
36 |
return wt.Reader.(io.WriterTo).WriteTo(w)
|
| 37 | 37 |
}
|
| 38 | 38 |
|
| 39 | 39 |
func TestProxyReader(t *testing.T) {
|
| 40 | 40 |
p := mpb.New(mpb.WithOutput(io.Discard))
|
| 41 | 41 |
|
| 42 | |
tReader := &testReader{strings.NewReader(content), false}
|
|
42 |
reader := &testReader{strings.NewReader(content), false}
|
| 43 | 43 |
|
| 44 | 44 |
bar := p.AddBar(int64(len(content)))
|
| 45 | 45 |
|
| 46 | 46 |
var buf bytes.Buffer
|
| 47 | |
_, err := io.Copy(&buf, bar.ProxyReader(tReader))
|
|
47 |
_, err := io.Copy(&buf, bar.ProxyReader(reader))
|
| 48 | 48 |
if err != nil {
|
| 49 | 49 |
t.Errorf("Error copying from reader: %+v\n", err)
|
| 50 | 50 |
}
|
| 51 | 51 |
|
| 52 | 52 |
p.Wait()
|
| 53 | 53 |
|
| 54 | |
if !tReader.called {
|
|
54 |
if !reader.called {
|
| 55 | 55 |
t.Error("Read not called")
|
| 56 | 56 |
}
|
| 57 | 57 |
|
|
| 64 | 64 |
p := mpb.New(mpb.WithOutput(io.Discard))
|
| 65 | 65 |
|
| 66 | 66 |
var reader io.Reader = strings.NewReader(content)
|
| 67 | |
tWriterTo := testWriterTo{&testReader{reader, false}, reader.(io.WriterTo)}
|
|
67 |
writerTo := &testWriterTo{&testReader{reader, false}, false}
|
| 68 | 68 |
|
| 69 | 69 |
bar := p.AddBar(int64(len(content)))
|
| 70 | 70 |
|
| 71 | 71 |
var buf bytes.Buffer
|
| 72 | |
_, err := io.Copy(&buf, bar.ProxyReader(tWriterTo))
|
|
72 |
_, err := io.Copy(&buf, bar.ProxyReader(writerTo))
|
| 73 | 73 |
if err != nil {
|
| 74 | 74 |
t.Errorf("Error copying from reader: %+v\n", err)
|
| 75 | 75 |
}
|
| 76 | 76 |
|
| 77 | 77 |
p.Wait()
|
| 78 | 78 |
|
| 79 | |
if !tWriterTo.called {
|
|
79 |
if !writerTo.called {
|
| 80 | 80 |
t.Error("WriteTo not called")
|
| 81 | 81 |
}
|
| 82 | 82 |
|