github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/rpc/observers_test.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package rpc_test 5 6 import ( 7 "github.com/juju/testing" 8 gc "gopkg.in/check.v1" 9 10 "github.com/juju/juju/apiserver/observer/fakeobserver" 11 "github.com/juju/juju/rpc" 12 ) 13 14 type multiplexerSuite struct { 15 testing.IsolationSuite 16 } 17 18 var _ = gc.Suite(&multiplexerSuite{}) 19 20 func (*multiplexerSuite) TestServerReply_CallsAllObservers(c *gc.C) { 21 observers := []*fakeobserver.RPCInstance{ 22 (&fakeobserver.Instance{}).RPCObserver().(*fakeobserver.RPCInstance), 23 (&fakeobserver.Instance{}).RPCObserver().(*fakeobserver.RPCInstance), 24 } 25 26 o := rpc.NewObserverMultiplexer(observers[0], observers[1]) 27 var ( 28 req rpc.Request 29 hdr rpc.Header 30 body string 31 ) 32 o.ServerReply(req, &hdr, body) 33 34 for _, f := range observers { 35 f.CheckCall(c, 0, "ServerReply", req, &hdr, body) 36 } 37 } 38 39 func (*multiplexerSuite) TestServerRequest_CallsAllObservers(c *gc.C) { 40 observers := []*fakeobserver.RPCInstance{ 41 (&fakeobserver.Instance{}).RPCObserver().(*fakeobserver.RPCInstance), 42 (&fakeobserver.Instance{}).RPCObserver().(*fakeobserver.RPCInstance), 43 } 44 45 o := rpc.NewObserverMultiplexer(observers[0], observers[1]) 46 var ( 47 hdr rpc.Header 48 body string 49 ) 50 o.ServerRequest(&hdr, body) 51 52 for _, f := range observers { 53 f.CheckCall(c, 0, "ServerRequest", &hdr, body) 54 } 55 }