github.com/toplink-cn/moby@v0.0.0-20240305205811-460b4aebdf81/daemon/volumes_unit_test.go (about)

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