github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/oracle/images_test.go (about) 1 // Copyright 2017 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package oracle_test 5 6 import ( 7 "errors" 8 9 gitjujutesting "github.com/juju/testing" 10 gc "gopkg.in/check.v1" 11 12 "github.com/juju/juju/environs/imagemetadata" 13 "github.com/juju/juju/environs/instances" 14 "github.com/juju/juju/provider/oracle" 15 oracletesting "github.com/juju/juju/provider/oracle/testing" 16 ) 17 18 type imageSuite struct { 19 gitjujutesting.IsolationSuite 20 } 21 22 var _ = gc.Suite(&imageSuite{}) 23 24 func (i imageSuite) TestGetImageName(c *gc.C) { 25 name, err := oracle.GetImageName(oracletesting.DefaultEnvironAPI, "0") 26 c.Assert(err, gc.IsNil) 27 ok := len(name) > 0 28 c.Assert(ok, gc.Equals, true) 29 } 30 31 func (i imageSuite) TestGetImageNameWithErrors(c *gc.C) { 32 _, err := oracle.GetImageName(oracletesting.DefaultEnvironAPI, "") 33 c.Assert(err, gc.NotNil) 34 35 _, err = oracle.GetImageName(&oracletesting.FakeEnvironAPI{ 36 FakeImager: oracletesting.FakeImager{ 37 AllErr: errors.New("FakeImageListErr"), 38 }}, "0") 39 c.Assert(err, gc.NotNil) 40 } 41 42 func (i imageSuite) TestCheckImageList(c *gc.C) { 43 images, err := oracle.CheckImageList(oracletesting.DefaultEnvironAPI) 44 45 c.Assert(err, gc.IsNil) 46 c.Assert(images, gc.NotNil) 47 } 48 49 func (i imageSuite) TestCheckImageListWithErrors(c *gc.C) { 50 _, err := oracle.CheckImageList(&oracletesting.FakeEnvironAPI{ 51 FakeImager: oracletesting.FakeImager{ 52 AllErr: errors.New("FakeImageListErr"), 53 }, 54 }) 55 c.Assert(err, gc.NotNil) 56 57 _, err = oracle.CheckImageList(nil) 58 c.Assert(err, gc.NotNil) 59 } 60 61 func (i imageSuite) TestFindInstanceSpec(c *gc.C) { 62 spec, imagelist, err := oracle.FindInstanceSpec( 63 oracletesting.DefaultEnvironAPI, 64 TestImageMetadata, 65 []instances.InstanceType{ 66 { 67 Id: "win2018r2", 68 Name: "", 69 Arches: []string{"amd64"}, 70 }, 71 }, 72 73 &instances.InstanceConstraint{ 74 Region: "uscom-central-1", 75 Series: "xenial", 76 }, 77 ) 78 79 c.Assert(err, gc.IsNil) 80 c.Assert(spec, gc.NotNil) 81 c.Assert((len(imagelist) > 0), gc.Equals, true) 82 } 83 84 func (i imageSuite) TestFindInstanceSpecWithSeriesError(c *gc.C) { 85 _, _, err := oracle.FindInstanceSpec( 86 oracletesting.DefaultEnvironAPI, 87 TestImageMetadata, 88 []instances.InstanceType{ 89 { 90 Id: "win2018r2", 91 Name: "", 92 Arches: []string{"amd64"}, 93 }, 94 }, 95 96 &instances.InstanceConstraint{ 97 Region: "uscom-central-1", 98 Series: "non-supported-series", 99 }, 100 ) 101 102 c.Assert(err, gc.NotNil) 103 } 104 105 func (i imageSuite) TestFindInstanceSpecWithError(c *gc.C) { 106 _, _, err := oracle.FindInstanceSpec( 107 oracletesting.DefaultEnvironAPI, 108 []*imagemetadata.ImageMetadata{}, 109 []instances.InstanceType{ 110 { 111 Id: "win2018r2", 112 Name: "", 113 Arches: []string{"amd64"}, 114 }, 115 }, 116 117 &instances.InstanceConstraint{ 118 Region: "uscom-central-1", 119 Series: "xenial", 120 }, 121 ) 122 c.Assert(err, gc.NotNil) 123 } 124 125 func (i imageSuite) TestInstanceTypes(c *gc.C) { 126 types, err := oracle.InstanceTypes(oracletesting.DefaultEnvironAPI) 127 c.Assert(err, gc.IsNil) 128 c.Assert(types, gc.NotNil) 129 } 130 131 func (i imageSuite) TestInstanceTypesWithErrrors(c *gc.C) { 132 for _, fake := range []*oracletesting.FakeEnvironAPI{ 133 { 134 FakeShaper: oracletesting.FakeShaper{ 135 AllErr: errors.New("FakeShaperErr"), 136 }, 137 }, 138 } { 139 _, err := oracle.InstanceTypes(fake) 140 c.Assert(err, gc.NotNil) 141 } 142 } 143 144 var TestImageMetadata = []*imagemetadata.ImageMetadata{ 145 { 146 Id: "win2012r2", 147 Storage: "", 148 VirtType: "", 149 Arch: "amd64", 150 Version: "win2012r2", 151 RegionAlias: "", 152 RegionName: "uscom-central-1", 153 Endpoint: "https://compute.uscom-central-1.oraclecloud.com", 154 Stream: "", 155 }, 156 { 157 Id: "20170307", 158 Storage: "", 159 VirtType: "", 160 Arch: "amd64", 161 Version: "16.04", 162 RegionAlias: "", 163 RegionName: "uscom-central-1", 164 Endpoint: "https://compute.uscom-central-1.oraclecloud.com", 165 Stream: "", 166 }, 167 { 168 Id: "20170307", 169 Storage: "", 170 VirtType: "", 171 Arch: "amd64", 172 Version: "14.04", 173 RegionAlias: "", 174 RegionName: "uscom-central-1", 175 Endpoint: "https://compute.uscom-central-1.oraclecloud.com", 176 Stream: "", 177 }, 178 { 179 Id: "20170307", 180 Storage: "", 181 VirtType: "", 182 Arch: "amd64", 183 Version: "12.04", 184 RegionAlias: "", 185 RegionName: "uscom-central-1", 186 Endpoint: "https://compute.uscom-central-1.oraclecloud.com", 187 Stream: "", 188 }, 189 { 190 Id: "win2018r2", 191 Storage: "", 192 VirtType: "", 193 Arch: "amd64", 194 Version: "win2018r2", 195 RegionAlias: "", 196 RegionName: "uscom-central-1", 197 Endpoint: "https://compute.uscom-central-1.oraclecloud.com", 198 Stream: "", 199 }, 200 }