github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/container/broker/instance_broker_test.go (about) 1 // Copyright 2022 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package broker 5 6 import ( 7 "io" 8 "os" 9 "reflect" 10 11 "github.com/juju/testing" 12 jc "github.com/juju/testing/checkers" 13 gc "gopkg.in/check.v1" 14 ) 15 16 type instanceBrokerSuite struct { 17 testing.IsolationSuite 18 } 19 20 var _ = gc.Suite(&instanceBrokerSuite{}) 21 22 func mockOpen(name string) (*os.File, error) { 23 return os.Open(".") 24 } 25 26 func mockReadDirNamesInterfaces(f *os.File, n int) (names []string, err error) { 27 return nil, io.EOF 28 } 29 30 func mockReadDirNamesNetplan(f *os.File, n int) (names []string, err error) { 31 return nil, nil 32 } 33 34 func (s *instanceBrokerSuite) TestDefaultBridgerNetplan(c *gc.C) { 35 s.PatchValue(&openFunc, mockOpen) 36 s.PatchValue(&readDirFunc, mockReadDirNamesNetplan) 37 38 bridger, err := defaultBridger() 39 c.Assert(err, jc.ErrorIsNil) 40 c.Assert(reflect.TypeOf(bridger).Elem().Name(), gc.Equals, "netplanBridger") 41 } 42 43 func (s *instanceBrokerSuite) TestDefaultBridgerInterfaces(c *gc.C) { 44 s.PatchValue(&openFunc, mockOpen) 45 s.PatchValue(&readDirFunc, mockReadDirNamesInterfaces) 46 47 bridger, err := defaultBridger() 48 c.Assert(err, jc.ErrorIsNil) 49 c.Assert(reflect.TypeOf(bridger).Elem().Name(), gc.Equals, "etcNetworkInterfacesBridger") 50 }