github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/provider/gce/google/zone_test.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package google_test
     5  
     6  import (
     7  	jc "github.com/juju/testing/checkers"
     8  	"google.golang.org/api/compute/v1"
     9  	gc "gopkg.in/check.v1"
    10  
    11  	"github.com/juju/juju/provider/gce/google"
    12  )
    13  
    14  type zoneSuite struct {
    15  	google.BaseSuite
    16  
    17  	raw  compute.Zone
    18  	zone google.AvailabilityZone
    19  }
    20  
    21  var _ = gc.Suite(&zoneSuite{})
    22  
    23  func (s *zoneSuite) SetUpTest(c *gc.C) {
    24  	s.BaseSuite.SetUpTest(c)
    25  
    26  	s.raw = compute.Zone{
    27  		Name:   "c-zone",
    28  		Status: google.StatusUp,
    29  	}
    30  	s.zone = google.NewAvailabilityZone(&s.raw)
    31  }
    32  
    33  func (s *zoneSuite) TestAvailabilityZoneName(c *gc.C) {
    34  	c.Check(s.zone.Name(), gc.Equals, "c-zone")
    35  }
    36  
    37  func (s *zoneSuite) TestAvailabilityZoneStatus(c *gc.C) {
    38  	c.Check(s.zone.Status(), gc.Equals, "UP")
    39  }
    40  
    41  func (s *zoneSuite) TestAvailabilityZoneAvailable(c *gc.C) {
    42  	c.Check(s.zone.Available(), jc.IsTrue)
    43  }
    44  
    45  func (s *zoneSuite) TestAvailabilityZoneAvailableFalse(c *gc.C) {
    46  	s.raw.Status = google.StatusDown
    47  	c.Check(s.zone.Available(), jc.IsFalse)
    48  }
    49  
    50  func (s *zoneSuite) TestAvailabilityZoneNotDeprecated(c *gc.C) {
    51  	c.Check(s.zone.Deprecated(), jc.IsFalse)
    52  }
    53  
    54  func (s *zoneSuite) TestAvailabilityZoneDeprecated(c *gc.C) {
    55  	s.raw.Deprecated = &compute.DeprecationStatus{
    56  		State: "DEPRECATED",
    57  	}
    58  	c.Check(s.zone.Deprecated(), jc.IsTrue)
    59  }