package specgen import ( "testing" "github.com/stretchr/testify/assert" ) func TestSplitVolumeString(t *testing.T) { tests := []struct { name string volume string expect []string }{ // relative host paths { name: "relative host path", volume: "./hello:/container", expect: []string{"./hello", "/container"}, }, { name: "relative host path with options", volume: "./hello:/container:ro", expect: []string{"./hello", "/container", "ro"}, }, // absolute host path { name: "absolute host path", volume: "C:\\hello:/container", expect: []string{"C:\\hello", "/container"}, }, { name: "absolute host path with option", volume: "C:\\hello:/container:ro", expect: []string{"C:\\hello", "/container", "ro"}, }, { name: "absolute host path with option", volume: "C:\\hello:/container:ro", expect: []string{"C:\\hello", "/container", "ro"}, }, { name: "absolute extended host path", volume: `\\?\C:\hello:/container`, expect: []string{`\\?\C:\hello`, "/container"}, }, // volume source { name: "volume without option", volume: "vol-name:/container", expect: []string{"vol-name", "/container"}, }, { name: "volume with option", volume: "vol-name:/container:ro", expect: []string{"vol-name", "/container", "ro"}, }, { name: "single letter volume without option", volume: "a:/container", expect: []string{"a", "/container"}, }, { name: "single letter volume with option", volume: "a:/container:ro", expect: []string{"a", "/container", "ro"}, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { parts := SplitVolumeString(tt.volume) assert.Equal(t, tt.expect, parts, tt.name) }) } }