github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/libnetwork/drvregistry/networks_test.go (about)

     1  package drvregistry
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/Prakhar-Agarwal-byte/moby/libnetwork/driverapi"
     7  	"github.com/Prakhar-Agarwal-byte/moby/libnetwork/scope"
     8  	"gotest.tools/v3/assert"
     9  	is "gotest.tools/v3/assert/cmp"
    10  )
    11  
    12  const mockDriverName = "mock-driver"
    13  
    14  type mockDriver struct {
    15  	driverapi.Driver
    16  }
    17  
    18  var mockDriverCaps = driverapi.Capability{DataScope: scope.Local}
    19  
    20  var md = mockDriver{}
    21  
    22  func (m *mockDriver) Type() string {
    23  	return mockDriverName
    24  }
    25  
    26  func (m *mockDriver) IsBuiltIn() bool {
    27  	return true
    28  }
    29  
    30  func TestNetworks(t *testing.T) {
    31  	t.Run("RegisterDriver", func(t *testing.T) {
    32  		var reg Networks
    33  		err := reg.RegisterDriver(mockDriverName, &md, mockDriverCaps)
    34  		assert.NilError(t, err)
    35  	})
    36  
    37  	t.Run("RegisterDuplicateDriver", func(t *testing.T) {
    38  		var reg Networks
    39  		err := reg.RegisterDriver(mockDriverName, &md, mockDriverCaps)
    40  		assert.NilError(t, err)
    41  
    42  		// Try adding the same driver
    43  		err = reg.RegisterDriver(mockDriverName, &md, mockDriverCaps)
    44  		assert.Check(t, is.ErrorContains(err, ""))
    45  	})
    46  
    47  	t.Run("Driver", func(t *testing.T) {
    48  		var reg Networks
    49  		err := reg.RegisterDriver(mockDriverName, &md, mockDriverCaps)
    50  		assert.NilError(t, err)
    51  
    52  		d, cap := reg.Driver(mockDriverName)
    53  		assert.Check(t, d != nil)
    54  		assert.Check(t, is.DeepEqual(cap, mockDriverCaps))
    55  	})
    56  
    57  	t.Run("WalkDrivers", func(t *testing.T) {
    58  		var reg Networks
    59  		err := reg.RegisterDriver(mockDriverName, &md, mockDriverCaps)
    60  		assert.NilError(t, err)
    61  
    62  		var driverName string
    63  		reg.WalkDrivers(func(name string, driver driverapi.Driver, capability driverapi.Capability) bool {
    64  			driverName = name
    65  			return false
    66  		})
    67  
    68  		assert.Check(t, is.Equal(driverName, mockDriverName))
    69  	})
    70  }