~nskaggs/+junk/xenial-test

« back to all changes in this revision

Viewing changes to src/github.com/juju/gomaasapi/zone_test.go

  • Committer: Nicholas Skaggs
  • Date: 2016-10-24 20:56:05 UTC
  • Revision ID: nicholas.skaggs@canonical.com-20161024205605-z8lta0uvuhtxwzwl
Initi with beta15

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright 2016 Canonical Ltd.
 
2
// Licensed under the LGPLv3, see LICENCE file for details.
 
3
 
 
4
package gomaasapi
 
5
 
 
6
import (
 
7
        jc "github.com/juju/testing/checkers"
 
8
        "github.com/juju/version"
 
9
        gc "gopkg.in/check.v1"
 
10
)
 
11
 
 
12
type zoneSuite struct{}
 
13
 
 
14
var _ = gc.Suite(&zoneSuite{})
 
15
 
 
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?")`)
 
19
}
 
20
 
 
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")
 
29
}
 
30
 
 
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`)
 
34
}
 
35
 
 
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)
 
40
}
 
41
 
 
42
var zoneResponse = `
 
43
[
 
44
    {
 
45
        "description": "default description",
 
46
        "resource_uri": "/MAAS/api/2.0/zones/default/",
 
47
        "name": "default"
 
48
    }, {
 
49
        "description": "special description",
 
50
        "resource_uri": "/MAAS/api/2.0/zones/special/",
 
51
        "name": "special"
 
52
    }
 
53
]
 
54
`