volumes_unit_test.go 845 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package daemon
  2. import (
  3. "runtime"
  4. "testing"
  5. "github.com/docker/docker/volume"
  6. )
  7. func TestParseVolumesFrom(t *testing.T) {
  8. cases := []struct {
  9. spec string
  10. expID string
  11. expMode string
  12. fail bool
  13. }{
  14. {"", "", "", true},
  15. {"foobar", "foobar", "rw", false},
  16. {"foobar:rw", "foobar", "rw", false},
  17. {"foobar:ro", "foobar", "ro", false},
  18. {"foobar:baz", "", "", true},
  19. }
  20. parser := volume.NewParser(runtime.GOOS)
  21. for _, c := range cases {
  22. id, mode, err := parser.ParseVolumesFrom(c.spec)
  23. if c.fail {
  24. if err == nil {
  25. t.Fatalf("Expected error, was nil, for spec %s\n", c.spec)
  26. }
  27. continue
  28. }
  29. if id != c.expID {
  30. t.Fatalf("Expected id %s, was %s, for spec %s\n", c.expID, id, c.spec)
  31. }
  32. if mode != c.expMode {
  33. t.Fatalf("Expected mode %s, was %s for spec %s\n", c.expMode, mode, c.spec)
  34. }
  35. }
  36. }