options_test.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package main
  2. import (
  3. "path/filepath"
  4. "testing"
  5. cliconfig "github.com/docker/docker/cli/config"
  6. "github.com/docker/docker/daemon/config"
  7. "github.com/spf13/pflag"
  8. "gotest.tools/v3/assert"
  9. is "gotest.tools/v3/assert/cmp"
  10. )
  11. func TestCommonOptionsInstallFlags(t *testing.T) {
  12. flags := pflag.NewFlagSet("testing", pflag.ContinueOnError)
  13. opts := newDaemonOptions(&config.Config{})
  14. opts.InstallFlags(flags)
  15. err := flags.Parse([]string{
  16. "--tlscacert=\"/foo/cafile\"",
  17. "--tlscert=\"/foo/cert\"",
  18. "--tlskey=\"/foo/key\"",
  19. })
  20. assert.Check(t, err)
  21. assert.Check(t, is.Equal("/foo/cafile", opts.TLSOptions.CAFile))
  22. assert.Check(t, is.Equal("/foo/cert", opts.TLSOptions.CertFile))
  23. assert.Check(t, is.Equal(opts.TLSOptions.KeyFile, "/foo/key"))
  24. }
  25. func defaultPath(filename string) string {
  26. return filepath.Join(cliconfig.Dir(), filename)
  27. }
  28. func TestCommonOptionsInstallFlagsWithDefaults(t *testing.T) {
  29. flags := pflag.NewFlagSet("testing", pflag.ContinueOnError)
  30. opts := newDaemonOptions(&config.Config{})
  31. opts.InstallFlags(flags)
  32. err := flags.Parse([]string{})
  33. assert.Check(t, err)
  34. assert.Check(t, is.Equal(defaultPath("ca.pem"), opts.TLSOptions.CAFile))
  35. assert.Check(t, is.Equal(defaultPath("cert.pem"), opts.TLSOptions.CertFile))
  36. assert.Check(t, is.Equal(defaultPath("key.pem"), opts.TLSOptions.KeyFile))
  37. }