client: add TestClientCloseErr

This commit is contained in:
Aleksandr Razumov
2017-12-17 02:56:31 +03:00
parent 2ff3e90c82
commit 3612554cd8

View File

@@ -206,9 +206,10 @@ func TestStopErr_Error(t *testing.T) {
type errorAgent struct { type errorAgent struct {
startErr error startErr error
stopErr error stopErr error
closeErr error
} }
func (errorAgent) Close() error { return nil } func (a errorAgent) Close() error { return a.closeErr }
func (errorAgent) Collect(time.Time) error { return nil } func (errorAgent) Collect(time.Time) error { return nil }
@@ -360,3 +361,27 @@ func TestDialError(t *testing.T) {
t.Fatal("error expected") t.Fatal("error expected")
} }
} }
func TestClientCloseErr(t *testing.T) {
response := MustBuild(TransactionID, BindingSuccess)
response.Encode()
conn := &testConnection{
b: response.Raw,
write: func(bytes []byte) (int, error) {
return len(bytes), nil
},
}
c, err := NewClient(ClientOptions{
Agent: errorAgent{
closeErr: io.ErrUnexpectedEOF,
},
Connection: conn,
})
if err != nil {
log.Fatal(err)
}
defer func() {
if err, ok := c.Close().(CloseErr); !ok || err.AgentErr != io.ErrUnexpectedEOF {
t.Error("unexpected close err")
}
}()
}