Documentation
¶
Index ¶
- Constants
- Variables
- func DefaultTestResource() *generator.ManagedResource
- func NestedFieldFixture(outerTypeName, nestedTypeName, deeplyNestedTypeName string) generator.Field
- func NestedFieldsWithDuplicates() generator.Field
- func NestingModePrinter(names []string, blocks []*configschema.NestedBlock)
- func UnrollBlocks(block *configschema.Block, indent string)
- func UpdateAllFixtures(itc *IntegrationTestConfig) error
- func VisitAllBlocks(v Visitor, name string, block configschema.Block)
- func VisitBlock(v Visitor, names []string, blocks []*configschema.NestedBlock)
- type CtyTypeIndexer
- type FlatResourceFinder
- type IntegrationTestConfig
- type TestConfigOption
- type UniqueNestingMode
- type UniqueNestingModeMap
- type Visitor
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 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 ¶
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 UniqueNestingModeMap ¶
type UniqueNestingModeMap map[UniqueNestingMode][]string
func (UniqueNestingModeMap) Visitor ¶
func (unmm UniqueNestingModeMap) Visitor(names []string, blocks []*configschema.NestedBlock)
Click to show internal directories.
Click to hide internal directories.