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  }