func TestBuildHeaders(t *testing.T) { testStruct := struct { Accept string `h:"Accept"` Num int `h:"Number,required"` Style bool `h:"Style"` }{ Accept: "application/json", Num: 4, Style: true, } expected := map[string]string{"Accept": "application/json", "Number": "4", "Style": "true"} actual, err := BuildHeaders(&testStruct) th.CheckNoErr(t, err) th.CheckDeepEquals(t, expected, actual) testStruct.Num = 0 _, err = BuildHeaders(&testStruct) if err == nil { t.Errorf("Expected error: 'Required header not set'") } _, err = BuildHeaders(map[string]interface{}{"Number": 4}) if err == nil { t.Errorf("Expected error: 'Options type is not a struct'") } }
func TestGetContainers(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() os.HandleGetContainerSuccessfully(t) _, err := Get(fake.ServiceClient(), "testContainer").ExtractMetadata() th.CheckNoErr(t, err) }
func TestDeleteContainers(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() os.HandleDeleteContainerSuccessfully(t) res := Delete(fake.ServiceClient(), "testContainer") th.CheckNoErr(t, res.Err) }
func TestUpdateContainers(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() os.HandleUpdateContainerSuccessfully(t) options := &os.UpdateOpts{Metadata: map[string]string{"foo": "bar"}} res := Update(fake.ServiceClient(), "testContainer", options) th.CheckNoErr(t, res.Err) }
func TestUpdateAccounts(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() os.HandleUpdateAccountSuccessfully(t) options := &UpdateOpts{Metadata: map[string]string{"gophercloud-test": "accounts"}} res := Update(fake.ServiceClient(), options) th.CheckNoErr(t, res.Err) }
func TestGetAccounts(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() os.HandleGetAccountSuccessfully(t) expected := map[string]string{"Foo": "bar"} actual, err := Get(fake.ServiceClient()).ExtractMetadata() th.CheckNoErr(t, err) th.CheckDeepEquals(t, expected, actual) }
func TestCreateContainers(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() os.HandleCreateContainerSuccessfully(t) options := os.CreateOpts{ContentType: "application/json", Metadata: map[string]string{"foo": "bar"}} res := Create(fake.ServiceClient(), "testContainer", options) th.CheckNoErr(t, res.Err) th.CheckEquals(t, "bar", res.Header["X-Container-Meta-Foo"][0]) }
func TestEnumerateSinglePaged(t *testing.T) { callCount := 0 pager := setupSinglePaged() defer testhelper.TeardownHTTP() err := pager.EachPage(func(page Page) (bool, error) { callCount++ expected := []int{1, 2, 3} actual, err := ExtractSingleInts(page) testhelper.AssertNoErr(t, err) testhelper.CheckDeepEquals(t, expected, actual) return true, nil }) testhelper.CheckNoErr(t, err) testhelper.CheckEquals(t, 1, callCount) }
func TestWaitFor(t *testing.T) { err := WaitFor(5, func() (bool, error) { return true, nil }) th.CheckNoErr(t, err) }