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  }