github.com/chenchun/docker@v1.3.2-0.20150629222414-20467faf132b/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 ) 13 14 func TestVolumeRequestError(t *testing.T) { 15 mux := http.NewServeMux() 16 server := httptest.NewServer(mux) 17 defer server.Close() 18 19 mux.HandleFunc("/VolumeDriver.Create", func(w http.ResponseWriter, r *http.Request) { 20 w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1+json") 21 fmt.Fprintln(w, `{"Err": "Cannot create volume"}`) 22 }) 23 24 mux.HandleFunc("/VolumeDriver.Remove", func(w http.ResponseWriter, r *http.Request) { 25 w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1+json") 26 fmt.Fprintln(w, `{"Err": "Cannot remove volume"}`) 27 }) 28 29 mux.HandleFunc("/VolumeDriver.Mount", func(w http.ResponseWriter, r *http.Request) { 30 w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1+json") 31 fmt.Fprintln(w, `{"Err": "Cannot mount volume"}`) 32 }) 33 34 mux.HandleFunc("/VolumeDriver.Unmount", func(w http.ResponseWriter, r *http.Request) { 35 w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1+json") 36 fmt.Fprintln(w, `{"Err": "Cannot unmount volume"}`) 37 }) 38 39 mux.HandleFunc("/VolumeDriver.Path", func(w http.ResponseWriter, r *http.Request) { 40 w.Header().Set("Content-Type", "application/vnd.docker.plugins.v1+json") 41 fmt.Fprintln(w, `{"Err": "Unknown volume"}`) 42 }) 43 44 u, _ := url.Parse(server.URL) 45 client := plugins.NewClient("tcp://" + u.Host) 46 driver := volumeDriverProxy{client} 47 48 err := driver.Create("volume") 49 if err == nil { 50 t.Fatal("Expected error, was nil") 51 } 52 53 if !strings.Contains(err.Error(), "Cannot create volume") { 54 t.Fatalf("Unexpected error: %v\n", err) 55 } 56 57 _, err = driver.Mount("volume") 58 if err == nil { 59 t.Fatal("Expected error, was nil") 60 } 61 62 if !strings.Contains(err.Error(), "Cannot mount volume") { 63 t.Fatalf("Unexpected error: %v\n", err) 64 } 65 66 err = driver.Unmount("volume") 67 if err == nil { 68 t.Fatal("Expected error, was nil") 69 } 70 71 if !strings.Contains(err.Error(), "Cannot unmount volume") { 72 t.Fatalf("Unexpected error: %v\n", err) 73 } 74 75 err = driver.Remove("volume") 76 if err == nil { 77 t.Fatal("Expected error, was nil") 78 } 79 80 if !strings.Contains(err.Error(), "Cannot remove volume") { 81 t.Fatalf("Unexpected error: %v\n", err) 82 } 83 84 _, err = driver.Path("volume") 85 if err == nil { 86 t.Fatal("Expected error, was nil") 87 } 88 89 if !strings.Contains(err.Error(), "Unknown volume") { 90 t.Fatalf("Unexpected error: %v\n", err) 91 } 92 }