github.com/hustcat/docker@v1.3.3-0.20160314103604-901c67a8eeab/volume/drivers/proxy_test.go (about) 1 package volumedrivers 2 3 import ( 4 "fmt" 5 "net/http" 6 "net/http/httptest" 7 "net/url" 8 "strings" 9 "testing" 10 11 "github.com/docker/docker/pkg/plugins" 12 "github.com/docker/go-connections/tlsconfig" 13 ) 14 15 func TestVolumeRequestError(t *testing.T) { 16 mux := http.NewServeMux() 17 server := httptest.NewServer(mux) 18 defer server.Close() 19 20 mux.HandleFunc("/VolumeDriver.Create", func(w http.ResponseWriter, r *http.Request) { 21 w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1+json") 22 fmt.Fprintln(w, `{"Err": "Cannot create volume"}`) 23 }) 24 25 mux.HandleFunc("/VolumeDriver.Remove", func(w http.ResponseWriter, r *http.Request) { 26 w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1+json") 27 fmt.Fprintln(w, `{"Err": "Cannot remove volume"}`) 28 }) 29 30 mux.HandleFunc("/VolumeDriver.Mount", func(w http.ResponseWriter, r *http.Request) { 31 w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1+json") 32 fmt.Fprintln(w, `{"Err": "Cannot mount volume"}`) 33 }) 34 35 mux.HandleFunc("/VolumeDriver.Unmount", func(w http.ResponseWriter, r *http.Request) { 36 w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1+json") 37 fmt.Fprintln(w, `{"Err": "Cannot unmount volume"}`) 38 }) 39 40 mux.HandleFunc("/VolumeDriver.Path", func(w http.ResponseWriter, r *http.Request) { 41 w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1+json") 42 fmt.Fprintln(w, `{"Err": "Unknown volume"}`) 43 }) 44 45 mux.HandleFunc("/VolumeDriver.List", func(w http.ResponseWriter, r *http.Request) { 46 w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1+json") 47 fmt.Fprintln(w, `{"Err": "Cannot list volumes"}`) 48 }) 49 50 mux.HandleFunc("/VolumeDriver.Get", func(w http.ResponseWriter, r *http.Request) { 51 w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1+json") 52 fmt.Fprintln(w, `{"Err": "Cannot get volume"}`) 53 }) 54 55 u, _ := url.Parse(server.URL) 56 client, err := plugins.NewClient("tcp://"+u.Host, tlsconfig.Options{InsecureSkipVerify: true}) 57 if err != nil { 58 t.Fatal(err) 59 } 60 61 driver := volumeDriverProxy{client} 62 63 if err = driver.Create("volume", nil); err == nil { 64 t.Fatal("Expected error, was nil") 65 } 66 67 if !strings.Contains(err.Error(), "Cannot create volume") { 68 t.Fatalf("Unexpected error: %v\n", err) 69 } 70 71 _, err = driver.Mount("volume") 72 if err == nil { 73 t.Fatal("Expected error, was nil") 74 } 75 76 if !strings.Contains(err.Error(), "Cannot mount volume") { 77 t.Fatalf("Unexpected error: %v\n", err) 78 } 79 80 err = driver.Unmount("volume") 81 if err == nil { 82 t.Fatal("Expected error, was nil") 83 } 84 85 if !strings.Contains(err.Error(), "Cannot unmount volume") { 86 t.Fatalf("Unexpected error: %v\n", err) 87 } 88 89 err = driver.Remove("volume") 90 if err == nil { 91 t.Fatal("Expected error, was nil") 92 } 93 94 if !strings.Contains(err.Error(), "Cannot remove volume") { 95 t.Fatalf("Unexpected error: %v\n", err) 96 } 97 98 _, err = driver.Path("volume") 99 if err == nil { 100 t.Fatal("Expected error, was nil") 101 } 102 103 if !strings.Contains(err.Error(), "Unknown volume") { 104 t.Fatalf("Unexpected error: %v\n", err) 105 } 106 107 _, err = driver.List() 108 if err == nil { 109 t.Fatal("Expected error, was nil") 110 } 111 if !strings.Contains(err.Error(), "Cannot list volumes") { 112 t.Fatalf("Unexpected error: %v\n", err) 113 } 114 115 _, err = driver.Get("volume") 116 if err == nil { 117 t.Fatal("Expected error, was nil") 118 } 119 if !strings.Contains(err.Error(), "Cannot get volume") { 120 t.Fatalf("Unexpected error: %v\n", err) 121 } 122 }