// 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") } }