summaryrefslogtreecommitdiffstats
path: root/dependencies/pkg/mod/github.com/vbauerster/mpb/v6@v6.0.4/proxyreader_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'dependencies/pkg/mod/github.com/vbauerster/mpb/v6@v6.0.4/proxyreader_test.go')
-rw-r--r--dependencies/pkg/mod/github.com/vbauerster/mpb/v6@v6.0.4/proxyreader_test.go90
1 files changed, 90 insertions, 0 deletions
diff --git a/dependencies/pkg/mod/github.com/vbauerster/mpb/v6@v6.0.4/proxyreader_test.go b/dependencies/pkg/mod/github.com/vbauerster/mpb/v6@v6.0.4/proxyreader_test.go
new file mode 100644
index 0000000..71e036b
--- /dev/null
+++ b/dependencies/pkg/mod/github.com/vbauerster/mpb/v6@v6.0.4/proxyreader_test.go
@@ -0,0 +1,90 @@
+package mpb_test
+
+import (
+ "bytes"
+ "io"
+ "io/ioutil"
+ "strings"
+ "testing"
+
+ "github.com/vbauerster/mpb/v6"
+)
+
+const content = `Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
+ veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
+ commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
+ esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
+ cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
+ est laborum.`
+
+type testReader struct {
+ io.Reader
+ called bool
+}
+
+func (r *testReader) Read(p []byte) (n int, err error) {
+ r.called = true
+ return r.Reader.Read(p)
+}
+
+func TestProxyReader(t *testing.T) {
+ p := mpb.New(mpb.WithOutput(ioutil.Discard))
+
+ tReader := &testReader{strings.NewReader(content), false}
+
+ bar := p.AddBar(int64(len(content)), mpb.BarFillerTrim())
+
+ var buf bytes.Buffer
+ _, err := io.Copy(&buf, bar.ProxyReader(tReader))
+ if err != nil {
+ t.Errorf("Error copying from reader: %+v\n", err)
+ }
+
+ p.Wait()
+
+ if !tReader.called {
+ t.Error("Read not called")
+ }
+
+ if got := buf.String(); got != content {
+ t.Errorf("Expected content: %s, got: %s\n", content, got)
+ }
+}
+
+type testWriterTo struct {
+ io.Reader
+ wt io.WriterTo
+ called bool
+}
+
+func (wt *testWriterTo) WriteTo(w io.Writer) (n int64, err error) {
+ wt.called = true
+ return wt.wt.WriteTo(w)
+}
+
+func TestProxyWriterTo(t *testing.T) {
+ p := mpb.New(mpb.WithOutput(ioutil.Discard))
+
+ var reader io.Reader = strings.NewReader(content)
+ wt := reader.(io.WriterTo)
+ tReader := &testWriterTo{reader, wt, false}
+
+ bar := p.AddBar(int64(len(content)), mpb.BarFillerTrim())
+
+ var buf bytes.Buffer
+ _, err := io.Copy(&buf, bar.ProxyReader(tReader))
+ if err != nil {
+ t.Errorf("Error copying from reader: %+v\n", err)
+ }
+
+ p.Wait()
+
+ if !tReader.called {
+ t.Error("WriteTo not called")
+ }
+
+ if got := buf.String(); got != content {
+ t.Errorf("Expected content: %s, got: %s\n", content, got)
+ }
+}