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  }