36 lines
875 B
Go
36 lines
875 B
Go
// Copyright 2014 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 rpc
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
)
|
|
|
|
type shutdownCodec struct {
|
|
responded chan int
|
|
closed bool
|
|
}
|
|
|
|
func (c *shutdownCodec) WriteRequest(*Request, interface{}) error { return nil }
|
|
func (c *shutdownCodec) ReadResponseBody(interface{}) error { return nil }
|
|
func (c *shutdownCodec) ReadResponseHeader(*Response) error {
|
|
c.responded <- 1
|
|
return errors.New("shutdownCodec ReadResponseHeader")
|
|
}
|
|
func (c *shutdownCodec) Close() error {
|
|
c.closed = true
|
|
return nil
|
|
}
|
|
|
|
func TestCloseCodec(t *testing.T) {
|
|
codec := &shutdownCodec{responded: make(chan int)}
|
|
client := NewClientWithCodec(codec)
|
|
<-codec.responded
|
|
client.Close()
|
|
if !codec.closed {
|
|
t.Error("client.Close did not close codec")
|
|
}
|
|
}
|