github.com/artisanhe/tools@v1.0.1-0.20210607022958-19a8fef2eb04/docker/volume_test.go (about) 1 package docker 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestParseVolumeString(t *testing.T) { 10 tt := assert.New(t) 11 12 type Case struct { 13 v string 14 volume Volume 15 } 16 17 cases := []Case{ 18 { 19 v: "content", 20 volume: Volume{ 21 Name: "content", 22 AccessMode: VolumeAccessModeReadWrite, 23 }, 24 }, 25 { 26 v: "content:ro", 27 volume: Volume{ 28 Name: "content", 29 AccessMode: VolumeAccessModeReadOnly, 30 }, 31 }, 32 { 33 v: "content:/tmp", 34 volume: Volume{ 35 Name: "content", 36 MountPath: "/tmp", 37 AccessMode: VolumeAccessModeReadWrite, 38 }, 39 }, 40 { 41 v: "/tmp", 42 volume: Volume{ 43 MountPath: "/tmp", 44 }, 45 }, 46 { 47 v: "container:content", 48 volume: Volume{ 49 Name: "content", 50 AccessMode: VolumeAccessModeReadWrite, 51 }, 52 }, 53 { 54 v: "content:/tmp:ro", 55 volume: Volume{ 56 Name: "content", 57 MountPath: "/tmp", 58 AccessMode: VolumeAccessModeReadOnly, 59 }, 60 }, 61 { 62 v: "/tmp:/tmp:ro", 63 volume: Volume{ 64 LocalPath: "/tmp", 65 MountPath: "/tmp", 66 AccessMode: VolumeAccessModeReadOnly, 67 }, 68 }, 69 } 70 71 for _, caseItem := range cases { 72 volume, err := ParseVolumeString(caseItem.v) 73 tt.Nil(err) 74 tt.Equal(&caseItem.volume, volume) 75 } 76 }