networks_test.go 1.6 KB

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