Add Send method for mockNetConn, and make Read/Write return errors when closed.

This commit is contained in:
Alex Bramley 2011-08-22 23:22:46 +01:00
parent 48ad9bfa4a
commit 0d7d875b9f
1 changed files with 11 additions and 1 deletions

View File

@ -45,7 +45,11 @@ func MockNetConn(t *testing.T) (*mockNetConn) {
return m return m
} }
// Test helper // Test helpers
func (m *mockNetConn) Send(s string) {
m.In <- s + "\r\n"
}
func (m *mockNetConn) Expect(e string) { func (m *mockNetConn) Expect(e string) {
s := <-m.Out s := <-m.Out
if e + "\r\n" != s { if e + "\r\n" != s {
@ -56,12 +60,18 @@ func (m *mockNetConn) Expect(e string) {
// Implement net.Conn interface // Implement net.Conn interface
func (m *mockNetConn) Read(b []byte) (int, os.Error) { func (m *mockNetConn) Read(b []byte) (int, os.Error) {
if m.closed {
return 0, os.NewError("EOF")
}
s := <-m.in s := <-m.in
copy(b, s) copy(b, s)
return len(s), nil return len(s), nil
} }
func (m *mockNetConn) Write(s []byte) (int, os.Error) { func (m *mockNetConn) Write(s []byte) (int, os.Error) {
if m.closed {
return 0, os.NewError("Can't write to closed socket.")
}
b := make([]byte, len(s)) b := make([]byte, len(s))
copy(b, s) copy(b, s)
m.out <- b m.out <- b