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  }