1
// Copyright 2016 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
7
jc "github.com/juju/testing/checkers"
12
type CloudImageMetadataSerializationSuite struct {
13
SliceSerializationSuite
16
var _ = gc.Suite(&CloudImageMetadataSerializationSuite{})
18
func (s *CloudImageMetadataSerializationSuite) SetUpTest(c *gc.C) {
19
s.SliceSerializationSuite.SetUpTest(c)
20
s.importName = "cloudimagemetadata"
21
s.sliceName = "cloudimagemetadata"
22
s.importFunc = func(m map[string]interface{}) (interface{}, error) {
23
return importCloudImageMetadata(m)
25
s.testFields = func(m map[string]interface{}) {
26
m["cloudimagemetadata"] = []interface{}{}
30
func (s *CloudImageMetadataSerializationSuite) TestNewCloudImageMetadata(c *gc.C) {
31
storageSize := uint64(3)
32
args := CloudImageMetadataArgs{
34
Region: "region-test",
38
VirtType: "virtType-test",
39
RootStorageType: "rootStorageType-test",
40
RootStorageSize: &storageSize,
46
metadata := newCloudImageMetadata(args)
47
c.Check(metadata.Stream(), gc.Equals, args.Stream)
48
c.Check(metadata.Region(), gc.Equals, args.Region)
49
c.Check(metadata.Version(), gc.Equals, args.Version)
50
c.Check(metadata.Series(), gc.Equals, args.Series)
51
c.Check(metadata.Arch(), gc.Equals, args.Arch)
52
c.Check(metadata.VirtType(), gc.Equals, args.VirtType)
53
c.Check(metadata.RootStorageType(), gc.Equals, args.RootStorageType)
54
value, ok := metadata.RootStorageSize()
55
c.Check(ok, jc.IsTrue)
56
c.Check(value, gc.Equals, *args.RootStorageSize)
57
c.Check(metadata.Source(), gc.Equals, args.Source)
58
c.Check(metadata.Priority(), gc.Equals, args.Priority)
59
c.Check(metadata.ImageId(), gc.Equals, args.ImageId)
60
c.Check(metadata.DateCreated(), gc.Equals, args.DateCreated)
63
func (s *CloudImageMetadataSerializationSuite) TestParsingSerializedData(c *gc.C) {
64
storageSize := uint64(3)
65
initial := cloudimagemetadataset{
67
CloudImageMetadata_: []*cloudimagemetadata{
68
newCloudImageMetadata(CloudImageMetadataArgs{
70
Region: "region-test",
74
VirtType: "virtType-test",
75
RootStorageType: "rootStorageType-test",
76
RootStorageSize: &storageSize,
82
newCloudImageMetadata(CloudImageMetadataArgs{
84
Region: "region-test",
90
bytes, err := yaml.Marshal(initial)
91
c.Assert(err, jc.ErrorIsNil)
93
var source map[string]interface{}
94
err = yaml.Unmarshal(bytes, &source)
95
c.Assert(err, jc.ErrorIsNil)
97
metadata, err := importCloudImageMetadata(source)
98
c.Assert(err, jc.ErrorIsNil)
100
c.Assert(metadata, jc.DeepEquals, initial.CloudImageMetadata_)