| package containers |
| |
| import ( |
| "testing" |
| |
| "github.com/rackspace/gophercloud/pagination" |
| th "github.com/rackspace/gophercloud/testhelper" |
| fake "github.com/rackspace/gophercloud/testhelper/client" |
| ) |
| |
| var metadata = map[string]string{"gophercloud-test": "containers"} |
| |
| func TestListContainerInfo(t *testing.T) { |
| th.SetupHTTP() |
| defer th.TeardownHTTP() |
| HandleListContainerInfoSuccessfully(t) |
| |
| count := 0 |
| err := List(fake.ServiceClient(), &ListOpts{Full: true}).EachPage(func(page pagination.Page) (bool, error) { |
| count++ |
| actual, err := ExtractInfo(page) |
| th.AssertNoErr(t, err) |
| |
| th.CheckDeepEquals(t, ExpectedListInfo, actual) |
| |
| return true, nil |
| }) |
| th.AssertNoErr(t, err) |
| th.CheckEquals(t, count, 1) |
| } |
| |
| func TestListContainerNames(t *testing.T) { |
| th.SetupHTTP() |
| defer th.TeardownHTTP() |
| HandleListContainerNamesSuccessfully(t) |
| |
| count := 0 |
| err := List(fake.ServiceClient(), &ListOpts{Full: false}).EachPage(func(page pagination.Page) (bool, error) { |
| count++ |
| actual, err := ExtractNames(page) |
| if err != nil { |
| t.Errorf("Failed to extract container names: %v", err) |
| return false, err |
| } |
| |
| th.CheckDeepEquals(t, ExpectedListNames, actual) |
| |
| return true, nil |
| }) |
| th.AssertNoErr(t, err) |
| th.CheckEquals(t, count, 1) |
| } |
| |
| func TestCreateContainer(t *testing.T) { |
| th.SetupHTTP() |
| defer th.TeardownHTTP() |
| HandleCreateContainerSuccessfully(t) |
| |
| options := 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 TestDeleteContainer(t *testing.T) { |
| th.SetupHTTP() |
| defer th.TeardownHTTP() |
| HandleDeleteContainerSuccessfully(t) |
| |
| res := Delete(fake.ServiceClient(), "testContainer") |
| th.CheckNoErr(t, res.Err) |
| } |
| |
| func TestUpateContainer(t *testing.T) { |
| th.SetupHTTP() |
| defer th.TeardownHTTP() |
| HandleUpdateContainerSuccessfully(t) |
| |
| options := &UpdateOpts{Metadata: map[string]string{"foo": "bar"}} |
| res := Update(fake.ServiceClient(), "testContainer", options) |
| th.CheckNoErr(t, res.Err) |
| } |
| |
| func TestGetContainer(t *testing.T) { |
| th.SetupHTTP() |
| defer th.TeardownHTTP() |
| HandleGetContainerSuccessfully(t) |
| |
| _, err := Get(fake.ServiceClient(), "testContainer").ExtractMetadata() |
| th.CheckNoErr(t, err) |
| } |