blob: 578248038d8950f3d11330c55997b6629a8232d6 [file] [log] [blame]
package testing
import (
"testing"
"github.com/gophercloud/gophercloud/openstack/identity/v3/projects"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
)
func TestListProjects(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
HandleListProjectsSuccessfully(t)
count := 0
err := projects.List(client.ServiceClient(), nil).EachPage(func(page pagination.Page) (bool, error) {
count++
actual, err := projects.ExtractProjects(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedProjectSlice, actual)
return true, nil
})
th.AssertNoErr(t, err)
th.CheckEquals(t, count, 1)
}
func TestGetProject(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
HandleGetProjectSuccessfully(t)
actual, err := projects.Get(client.ServiceClient(), "1234", nil).Extract()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, RedTeam, *actual)
}
func TestCreateProject(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
HandleCreateProjectSuccessfully(t)
createOpts := projects.CreateOpts{
Name: "Red Team",
Description: "The team that is red",
}
actual, err := projects.Create(client.ServiceClient(), createOpts).Extract()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, RedTeam, *actual)
}
func TestDeleteProject(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
HandleDeleteProjectSuccessfully(t)
res := projects.Delete(client.ServiceClient(), "1234")
th.AssertNoErr(t, res.Err)
}
func TestUpdateProject(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
HandleUpdateProjectSuccessfully(t)
updateOpts := projects.UpdateOpts{
Name: "Bright Red Team",
Description: "The team that is bright red",
}
actual, err := projects.Update(client.ServiceClient(), "1234", updateOpts).Extract()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, UpdatedRedTeam, *actual)
}