1
// Copyright 2016 Canonical Ltd.
2
// Licensed under the LGPLv3, see LICENCE file for details.
7
jc "github.com/juju/testing/checkers"
8
"github.com/juju/version"
12
type zoneSuite struct{}
14
var _ = gc.Suite(&zoneSuite{})
16
func (*zoneSuite) TestReadZonesBadSchema(c *gc.C) {
17
_, err := readZones(twoDotOh, "wat?")
18
c.Assert(err.Error(), gc.Equals, `zone base schema check failed: expected list, got string("wat?")`)
21
func (*zoneSuite) TestReadZones(c *gc.C) {
22
zones, err := readZones(twoDotOh, parseJSON(c, zoneResponse))
23
c.Assert(err, jc.ErrorIsNil)
24
c.Assert(zones, gc.HasLen, 2)
25
c.Assert(zones[0].Name(), gc.Equals, "default")
26
c.Assert(zones[0].Description(), gc.Equals, "default description")
27
c.Assert(zones[1].Name(), gc.Equals, "special")
28
c.Assert(zones[1].Description(), gc.Equals, "special description")
31
func (*zoneSuite) TestLowVersion(c *gc.C) {
32
_, err := readZones(version.MustParse("1.9.0"), parseJSON(c, zoneResponse))
33
c.Assert(err.Error(), gc.Equals, `no zone read func for version 1.9.0`)
36
func (*zoneSuite) TestHighVersion(c *gc.C) {
37
zones, err := readZones(version.MustParse("2.1.9"), parseJSON(c, zoneResponse))
38
c.Assert(err, jc.ErrorIsNil)
39
c.Assert(zones, gc.HasLen, 2)
45
"description": "default description",
46
"resource_uri": "/MAAS/api/2.0/zones/default/",
49
"description": "special description",
50
"resource_uri": "/MAAS/api/2.0/zones/special/",