github.com/gophercloud/gophercloud@v1.11.0/openstack/imageservice/v2/imageimport/testing/requests_test.go (about) 1 package testing 2 3 import ( 4 "fmt" 5 "net/http" 6 "testing" 7 8 "github.com/gophercloud/gophercloud/openstack/imageservice/v2/imageimport" 9 th "github.com/gophercloud/gophercloud/testhelper" 10 fakeclient "github.com/gophercloud/gophercloud/testhelper/client" 11 ) 12 13 func TestGet(t *testing.T) { 14 th.SetupHTTP() 15 defer th.TeardownHTTP() 16 17 th.Mux.HandleFunc("/info/import", func(w http.ResponseWriter, r *http.Request) { 18 th.TestMethod(t, r, "GET") 19 th.TestHeader(t, r, "X-Auth-Token", fakeclient.TokenID) 20 21 w.Header().Add("Content-Type", "application/json") 22 w.WriteHeader(http.StatusOK) 23 24 fmt.Fprintf(w, ImportGetResult) 25 }) 26 27 validImportMethods := []string{ 28 string(imageimport.GlanceDirectMethod), 29 string(imageimport.WebDownloadMethod), 30 } 31 32 s, err := imageimport.Get(fakeclient.ServiceClient()).Extract() 33 th.AssertNoErr(t, err) 34 35 th.AssertEquals(t, s.ImportMethods.Description, "Import methods available.") 36 th.AssertEquals(t, s.ImportMethods.Type, "array") 37 th.AssertDeepEquals(t, s.ImportMethods.Value, validImportMethods) 38 } 39 40 func TestCreate(t *testing.T) { 41 th.SetupHTTP() 42 defer th.TeardownHTTP() 43 44 th.Mux.HandleFunc("/images/da3b75d9-3f4a-40e7-8a2c-bfab23927dea/import", func(w http.ResponseWriter, r *http.Request) { 45 th.TestMethod(t, r, "POST") 46 th.TestHeader(t, r, "X-Auth-Token", fakeclient.TokenID) 47 th.TestJSONRequest(t, r, ImportCreateRequest) 48 49 w.Header().Add("Content-Type", "application/json") 50 w.WriteHeader(http.StatusAccepted) 51 fmt.Fprintf(w, `{}`) 52 }) 53 54 opts := imageimport.CreateOpts{ 55 Name: imageimport.WebDownloadMethod, 56 URI: "http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img", 57 } 58 err := imageimport.Create(fakeclient.ServiceClient(), "da3b75d9-3f4a-40e7-8a2c-bfab23927dea", opts).ExtractErr() 59 th.AssertNoErr(t, err) 60 }