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  }