github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/state/cloudimagemetadata/internal_test.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package cloudimagemetadata 5 6 import ( 7 "github.com/juju/utils/set" 8 gc "gopkg.in/check.v1" 9 10 "github.com/juju/juju/testing" 11 ) 12 13 type cloudImageMetadataSuite struct{} 14 15 var _ = gc.Suite(&cloudImageMetadataSuite{}) 16 17 func (s *cloudImageMetadataSuite) TestCloudImageMetadataDocFields(c *gc.C) { 18 ignored := set.NewStrings("Id") 19 migrated := set.NewStrings( 20 "Stream", 21 "Region", 22 "Version", 23 "Series", 24 "Arch", 25 "VirtType", 26 "RootStorageType", 27 "RootStorageSize", 28 "Source", 29 "Priority", 30 "ImageId", 31 "DateCreated", 32 ) 33 fields := migrated.Union(ignored) 34 expected := testing.GetExportedFields(imagesMetadataDoc{}) 35 unknown := expected.Difference(fields) 36 removed := fields.Difference(expected) 37 // If this test fails, it means that extra fields have been added to the 38 // doc without thinking about the migration implications. 39 c.Check(unknown, gc.HasLen, 0) 40 c.Assert(removed, gc.HasLen, 0) 41 }