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 }