github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/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/collections/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 "ExpireAt", 33 ) 34 fields := migrated.Union(ignored) 35 expected := testing.GetExportedFields(imagesMetadataDoc{}) 36 unknown := expected.Difference(fields) 37 removed := fields.Difference(expected) 38 // If this test fails, it means that extra fields have been added to the 39 // doc without thinking about the migration implications. 40 c.Check(unknown, gc.HasLen, 0) 41 c.Assert(removed, gc.HasLen, 0) 42 }