github.com/ader1990/go@v0.0.0-20140630135419-8c24447fa791/src/pkg/net/rpc/client_test.go (about) 1 // Copyright 2014 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package rpc 6 7 import ( 8 "errors" 9 "testing" 10 ) 11 12 type shutdownCodec struct { 13 responded chan int 14 closed bool 15 } 16 17 func (c *shutdownCodec) WriteRequest(*Request, interface{}) error { return nil } 18 func (c *shutdownCodec) ReadResponseBody(interface{}) error { return nil } 19 func (c *shutdownCodec) ReadResponseHeader(*Response) error { 20 c.responded <- 1 21 return errors.New("shutdownCodec ReadResponseHeader") 22 } 23 func (c *shutdownCodec) Close() error { 24 c.closed = true 25 return nil 26 } 27 28 func TestCloseCodec(t *testing.T) { 29 codec := &shutdownCodec{responded: make(chan int)} 30 client := NewClientWithCodec(codec) 31 <-codec.responded 32 client.Close() 33 if !codec.closed { 34 t.Error("client.Close did not close codec") 35 } 36 }