| // Copyright 2009 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package io_test | |
| import ( | |
| "bytes" | |
| . "io" | |
| "testing" | |
| ) | |
| // An version of bytes.Buffer without ReadFrom and WriteTo | |
| type Buffer struct { | |
| bytes.Buffer | |
| ReaderFrom // conflicts with and hides bytes.Buffer's ReaderFrom. | |
| WriterTo // conflicts with and hides bytes.Buffer's WriterTo. | |
| } | |
| // Simple tests, primarily to verify the ReadFrom and WriteTo callouts inside Copy and Copyn. | |
| func TestCopy(t *testing.T) { | |
| rb := new(Buffer) | |
| wb := new(Buffer) | |
| rb.WriteString("hello, world.") | |
| Copy(wb, rb) | |
| if wb.String() != "hello, world." { | |
| t.Errorf("Copy did not work properly") | |
| } | |
| } | |
| func TestCopyReadFrom(t *testing.T) { | |
| rb := new(Buffer) | |
| wb := new(bytes.Buffer) // implements ReadFrom. | |
| rb.WriteString("hello, world.") | |
| Copy(wb, rb) | |
| if wb.String() != "hello, world." { | |
| t.Errorf("Copy did not work properly") | |
| } | |
| } | |
| func TestCopyWriteTo(t *testing.T) { | |
| rb := new(bytes.Buffer) // implements WriteTo. | |
| wb := new(Buffer) | |
| rb.WriteString("hello, world.") | |
| Copy(wb, rb) | |
| if wb.String() != "hello, world." { | |
| t.Errorf("Copy did not work properly") | |
| } | |
| } | |
| func TestCopyn(t *testing.T) { | |
| rb := new(Buffer) | |
| wb := new(Buffer) | |
| rb.WriteString("hello, world.") | |
| Copyn(wb, rb, 5) | |
| if wb.String() != "hello" { | |
| t.Errorf("Copyn did not work properly") | |
| } | |
| } | |
| func TestCopynReadFrom(t *testing.T) { | |
| rb := new(Buffer) | |
| wb := new(bytes.Buffer) // implements ReadFrom. | |
| rb.WriteString("hello") | |
| Copyn(wb, rb, 5) | |
| if wb.String() != "hello" { | |
| t.Errorf("Copyn did not work properly") | |
| } | |
| } | |
| func TestCopynWriteTo(t *testing.T) { | |
| rb := new(bytes.Buffer) // implements WriteTo. | |
| wb := new(Buffer) | |
| rb.WriteString("hello, world.") | |
| Copyn(wb, rb, 5) | |
| if wb.String() != "hello" { | |
| t.Errorf("Copyn did not work properly") | |
| } | |
| } |