46 lines
1.8 KiB
Go
46 lines
1.8 KiB
Go
package test
|
|
|
|
import (
|
|
"net"
|
|
"time"
|
|
)
|
|
|
|
type FakeNetConn struct {
|
|
ReadFunc func([]byte) (int, error)
|
|
WriteFunc func([]byte) (int, error)
|
|
CloseFunc func() error
|
|
LocalAddrFunc func() net.Addr
|
|
RemoteAddrFunc func() net.Addr
|
|
SetDeadlineFunc func(time.Time) error
|
|
SetReadDeadlineFunc func(time.Time) error
|
|
SetWriteDeadlineFunc func(time.Time) error
|
|
}
|
|
|
|
func (f FakeNetConn) Read(b []byte) (int, error) { return f.ReadFunc(b) }
|
|
func (f FakeNetConn) Write(b []byte) (int, error) { return f.WriteFunc(b) }
|
|
func (f FakeNetConn) Close() error { return f.CloseFunc() }
|
|
func (f FakeNetConn) LocalAddr() net.Addr { return f.LocalAddrFunc() }
|
|
func (f FakeNetConn) RemoteAddr() net.Addr { return f.RemoteAddrFunc() }
|
|
func (f FakeNetConn) SetDeadline(t time.Time) error { return f.SetDeadlineFunc(t) }
|
|
func (f FakeNetConn) SetReadDeadline(t time.Time) error { return f.SetReadDeadlineFunc(t) }
|
|
func (f FakeNetConn) SetWriteDeadline(t time.Time) error { return f.SetWriteDeadlineFunc(t) }
|
|
|
|
type fakeNetAddr struct{}
|
|
|
|
func (fakeNetAddr) Network() string { return "" }
|
|
func (fakeNetAddr) String() string { return "" }
|
|
|
|
func NewFakeNetConn() FakeNetConn {
|
|
netAddr := fakeNetAddr{}
|
|
return FakeNetConn{
|
|
ReadFunc: func(b []byte) (int, error) { return 0, nil },
|
|
WriteFunc: func(b []byte) (int, error) { return len(b), nil },
|
|
CloseFunc: func() error { return nil },
|
|
LocalAddrFunc: func() net.Addr { return netAddr },
|
|
RemoteAddrFunc: func() net.Addr { return netAddr },
|
|
SetDeadlineFunc: func(time.Time) error { return nil },
|
|
SetWriteDeadlineFunc: func(time.Time) error { return nil },
|
|
SetReadDeadlineFunc: func(time.Time) error { return nil },
|
|
}
|
|
}
|