github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/css/v1/flavors_test.go (about) 1 package v1 2 3 import ( 4 "reflect" 5 "testing" 6 7 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients" 8 "github.com/opentelekomcloud/gophertelekomcloud/openstack/css/v1/flavors" 9 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 10 ) 11 12 var emptyFlavor = flavors.Flavor{} 13 14 func TestFlavorList(t *testing.T) { 15 client, err := clients.NewCssV1Client() 16 th.AssertNoErr(t, err) 17 18 versions, err := flavors.List(client) 19 th.AssertNoErr(t, err) 20 21 if len(versions) == 0 { 22 t.Fatalf("empty version list") 23 } 24 for _, version := range versions { 25 t.Logf("%+v", version) 26 if version.Version == "" { 27 t.Error("version object has no object") 28 } 29 if version.Type == "" { 30 t.Error("version object has no type") 31 } 32 if len(version.Flavors) == 0 { 33 t.Errorf("empty flavor list in version") 34 } 35 for _, flavor := range version.Flavors { 36 if reflect.DeepEqual(emptyFlavor, flavor) { 37 t.Error("flavor is empty") 38 } 39 } 40 } 41 expectedVersion := versions[0] 42 expectedFlavor := expectedVersion.Flavors[0] 43 44 filterOpts := flavors.FilterOpts{ 45 Version: expectedVersion.Version, 46 Type: expectedVersion.Type, 47 DiskMin: &flavors.Limit{Min: expectedFlavor.DiskMin, Max: expectedFlavor.DiskMin}, 48 DiskMax: &flavors.Limit{Min: expectedFlavor.DiskMax, Max: expectedFlavor.DiskMax}, 49 Region: expectedFlavor.Region, 50 CPU: &flavors.Limit{Min: expectedFlavor.CPU, Max: expectedFlavor.CPU}, 51 RAM: &flavors.Limit{Min: expectedFlavor.RAM, Max: expectedFlavor.RAM}, 52 } 53 54 filteredVersions := flavors.FilterVersions(versions, filterOpts) 55 56 th.AssertEquals(t, 1, len(filteredVersions)) 57 th.AssertEquals(t, 1, len(filteredVersions[0].Flavors)) 58 th.AssertEquals(t, expectedVersion.Type, filteredVersions[0].Type) 59 th.AssertEquals(t, expectedVersion.Version, filteredVersions[0].Version) 60 th.AssertDeepEquals(t, expectedFlavor, filteredVersions[0].Flavors[0]) 61 62 foundFlavor := flavors.FindFlavor(versions, filterOpts) 63 th.AssertDeepEquals(t, expectedFlavor, *foundFlavor) 64 65 foundByName := flavors.FindFlavor(versions, flavors.FilterOpts{FlavorName: expectedFlavor.Name}) 66 th.AssertDeepEquals(t, expectedFlavor, *foundByName) 67 }