integration

package
v0.0.0-...-b4c0e7c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 12, 2021 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultAPIVersion string = "v1alpha1"
View Source
const FakePackagePath string = "github.com/crossplane-contrib/fake"
View Source
const FakeResourceName string = "Test"

Variables

View Source
var (
	TestManagedResourceTypeDefRendererPath = "testdata/test-render-types-file.go"
	TestRenderNestedStatusPath             = "testdata/test-render-nested-status.go"
	TestRenderNestedSpecPath               = "testdata/test-render-nested-spec.go"
	TestRenderDuplicateFieldSpecPath       = "testdata/test-render-duplicate-field-spec.go"
	TestSchemaToManagedResourceRender      = "testdata/test-schema-to-managed-resource-render.go"
	TestProviderBinarySchemaS3Path         = "testdata/test-provider-binary-schema-s3.go"
)
View Source
var (
	EnvVarProviderName = "CPTF_PLUGIN_PROVIDER_NAME"
	EnvVarPluginPath   = "CPTF_PLUGIN_PATH"
)
View Source
var FixtureGenerators map[string]fixtureGenerator = map[string]fixtureGenerator{
	TestManagedResourceTypeDefRendererPath: func(itc *IntegrationTestConfig) (string, error) {
		tg, err := itc.TemplateGetter()
		if err != nil {
			return "", err
		}
		mr := DefaultTestResource()
		renderer := generator.NewManagedResourceTypeDefRenderer(mr, tg)
		result, err := renderer.Render()
		return result, err
	},
	TestRenderNestedStatusPath: func(itc *IntegrationTestConfig) (string, error) {
		tg, err := itc.TemplateGetter()
		if err != nil {
			return "", err
		}
		mr := DefaultTestResource()

		mr.Observation.StructField.PackagePath = FakePackagePath
		mr.Observation.Fields = []generator.Field{NestedFieldFixture("SubObservation", "nestedField", "deeplyNestedField")}
		renderer := generator.NewManagedResourceTypeDefRenderer(mr, tg)
		return renderer.Render()
	},
	TestRenderNestedSpecPath: func(itc *IntegrationTestConfig) (string, error) {
		tg, err := itc.TemplateGetter()
		if err != nil {
			return "", err
		}
		mr := DefaultTestResource()

		mr.Parameters.StructField.PackagePath = FakePackagePath
		mr.Parameters.Fields = []generator.Field{NestedFieldFixture("SubParameters", "nestedField", "deeplyNestedField")}
		renderer := generator.NewManagedResourceTypeDefRenderer(mr, tg)
		return renderer.Render()
	},
	TestRenderDuplicateFieldSpecPath: func(itc *IntegrationTestConfig) (string, error) {
		tg, err := itc.TemplateGetter()
		if err != nil {
			return "", err
		}
		mr := DefaultTestResource()

		mr.Parameters.StructField.PackagePath = FakePackagePath
		mr.Parameters.Fields = []generator.Field{NestedFieldsWithDuplicates()}
		mr, err = optimize.Deduplicate(mr)
		if err != nil {
			return "", err
		}
		renderer := generator.NewManagedResourceTypeDefRenderer(mr, tg)
		return renderer.Render()
	},
	TestSchemaToManagedResourceRender: func(itc *IntegrationTestConfig) (string, error) {
		tg, err := itc.TemplateGetter()
		if err != nil {
			return "", err
		}
		resourceName := "TestResource"

		packagePath := "github.com/crossplane/provider-terraform-aws/generated/test/v1alpha1"
		s := testFixtureFlatBlock()
		mr := translate.SchemaToManagedResource(resourceName, packagePath, s)
		renderer := generator.NewManagedResourceTypeDefRenderer(mr, tg)
		return renderer.Render()
	},
	TestProviderBinarySchemaS3Path: func(itc *IntegrationTestConfig) (string, error) {
		tg, err := itc.TemplateGetter()
		if err != nil {
			return "", err
		}
		packagePath := "github.com/crossplane/provider-terraform-aws/generated/test/v1alpha1"
		typeName := "aws_s3_bucket"
		c, err := getProvider(itc)
		if err != nil {
			return "", err
		}
		providerName, err := itc.ProviderName()
		if err != nil {
			return "", err
		}
		namer := provider.NewTerraformResourceNamer(providerName, typeName, DefaultAPIVersion)
		bucketResource := c.GetSchema().ResourceTypes[typeName]
		mr := translate.SchemaToManagedResource(namer.PackageName(), packagePath, bucketResource)
		renderer := generator.NewManagedResourceTypeDefRenderer(mr, tg)
		return renderer.Render()
	},
}

Functions

func DefaultTestResource

func DefaultTestResource() *generator.ManagedResource

func NestedFieldFixture

func NestedFieldFixture(outerTypeName, nestedTypeName, deeplyNestedTypeName string) generator.Field

func NestedFieldsWithDuplicates

func NestedFieldsWithDuplicates() generator.Field

func NestingModePrinter

func NestingModePrinter(names []string, blocks []*configschema.NestedBlock)

func UnrollBlocks

func UnrollBlocks(block *configschema.Block, indent string)

func UpdateAllFixtures

func UpdateAllFixtures(itc *IntegrationTestConfig) error

func VisitAllBlocks

func VisitAllBlocks(v Visitor, name string, block configschema.Block)

func VisitBlock

func VisitBlock(v Visitor, names []string, blocks []*configschema.NestedBlock)

Types

type CtyTypeIndexer

type CtyTypeIndexer map[string][]string

func (CtyTypeIndexer) Visitor

func (cti CtyTypeIndexer) Visitor(names []string, blocks []*configschema.NestedBlock)

type FlatResourceFinder

type FlatResourceFinder []string

func (*FlatResourceFinder) Visitor

func (frf *FlatResourceFinder) Visitor(names []string, blocks []*configschema.NestedBlock)

type IntegrationTestConfig

type IntegrationTestConfig struct {
	// contains filtered or unexported fields
}

func NewIntegrationTestConfig

func NewIntegrationTestConfig(opts ...TestConfigOption) *IntegrationTestConfig

func (*IntegrationTestConfig) PluginPath

func (itc *IntegrationTestConfig) PluginPath() (string, error)

func (*IntegrationTestConfig) ProviderName

func (itc *IntegrationTestConfig) ProviderName() (string, error)

func (*IntegrationTestConfig) RepoRoot

func (itc *IntegrationTestConfig) RepoRoot() (string, error)

func (*IntegrationTestConfig) TemplateGetter

func (itc *IntegrationTestConfig) TemplateGetter() (template.TemplateGetter, error)

type TestConfigOption

type TestConfigOption func(*IntegrationTestConfig)

func WithPluginPath

func WithPluginPath(pluginPath string) TestConfigOption

func WithProvidername

func WithProvidername(providerName string) TestConfigOption

func WithRepoRoot

func WithRepoRoot(repoRoot string) TestConfigOption

type UniqueNestingMode

type UniqueNestingMode struct {
	Mode       string
	MinItems   int
	MaxItems   int
	IsRequired bool
}

type UniqueNestingModeMap

type UniqueNestingModeMap map[UniqueNestingMode][]string

func (UniqueNestingModeMap) Visitor

func (unmm UniqueNestingModeMap) Visitor(names []string, blocks []*configschema.NestedBlock)

type Visitor

type Visitor func([]string, []*configschema.NestedBlock)

func MultiVisitor

func MultiVisitor(vs ...Visitor) Visitor

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL