github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/rackspace/flavors_test.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package rackspace_test 5 6 import ( 7 "github.com/juju/testing" 8 jc "github.com/juju/testing/checkers" 9 gc "gopkg.in/check.v1" 10 "gopkg.in/goose.v2/nova" 11 12 "github.com/juju/juju/environs" 13 "github.com/juju/juju/provider/openstack" 14 "github.com/juju/juju/provider/rackspace" 15 ) 16 17 type flavorsSuite struct { 18 testing.IsolationSuite 19 filter openstack.FlavorFilter 20 } 21 22 var _ = gc.Suite(&flavorsSuite{}) 23 24 func (s *flavorsSuite) SetUpTest(c *gc.C) { 25 s.IsolationSuite.SetUpTest(c) 26 provider, err := environs.Provider("rackspace") 27 c.Assert(err, jc.ErrorIsNil) 28 openstackProvider := rackspace.OpenstackProvider(provider) 29 s.filter = openstackProvider.FlavorFilter 30 } 31 32 func (s *flavorsSuite) TestFlavorFilter(c *gc.C) { 33 s.assertAcceptFlavor(c, "", true) 34 s.assertAcceptFlavor(c, "performance1-4", true) 35 s.assertAcceptFlavor(c, "compute1-4", false) 36 s.assertAcceptFlavor(c, "memory1-15", false) 37 } 38 39 func (s *flavorsSuite) assertAcceptFlavor(c *gc.C, id string, accept bool) { 40 accepted := s.filter.AcceptFlavor(nova.FlavorDetail{Id: id}) 41 c.Assert(accepted, gc.Equals, accept) 42 }