blob: 18ba9285e7865e83ac306bafee4838d46733a248 [file] [log] [blame]
package instances
import (
"testing"
"github.com/rackspace/gophercloud"
th "github.com/rackspace/gophercloud/testhelper"
fake "github.com/rackspace/gophercloud/testhelper/client"
)
func TestCreate(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
HandleCreateInstanceSuccessfully(t)
opts := CreateOpts{
Name: "json_rack_instance",
FlavorRef: "1",
Databases: DatabasesOpts{
DatabaseOpts{CharSet: "utf8", Collate: "utf8_general_ci", Name: "sampledb"},
DatabaseOpts{Name: "nextround"},
},
Users: UsersOpts{
UserOpts{
Name: "demouser",
Password: "demopassword",
Databases: DatabasesOpts{
DatabaseOpts{Name: "sampledb"},
},
},
},
Size: 2,
}
instance, err := Create(fake.ServiceClient(), opts).Extract()
expected := &Instance{
Created: "2014-02-13T21:47:13",
Updated: "2014-02-13T21:47:13",
Flavor: Flavor{
ID: "1",
Links: []gophercloud.Link{
gophercloud.Link{Href: "https://my-openstack.com/v1.0/1234/flavors/1", Rel: "self"},
gophercloud.Link{Href: "https://my-openstack.com/v1.0/1234/flavors/1", Rel: "bookmark"},
},
},
Hostname: "e09ad9a3f73309469cf1f43d11e79549caf9acf2.my-openstack.com",
ID: "d4603f69-ec7e-4e9b-803f-600b9205576f",
Links: []gophercloud.Link{
gophercloud.Link{Href: "https://my-openstack.com/v1.0/1234/instances/1", Rel: "self"},
},
Name: "json_rack_instance",
Status: "BUILD",
Volume: Volume{Size: 2},
}
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, expected, instance)
}