core: Testing helpers for building provider schemas
Now that a schema is required to decode resource configuration, a lot more tests than before need access to mock providers in order to get a schema. These new helpers allow a mock provider with a schema to be constructed concisely.
This commit is contained in:
parent
c58bdc6390
commit
7188cabdaf
|
@ -2,9 +2,55 @@ package terraform
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/hashicorp/terraform/config/configschema"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMockResourceProvider_impl(t *testing.T) {
|
func TestMockResourceProvider_impl(t *testing.T) {
|
||||||
var _ ResourceProvider = new(MockResourceProvider)
|
var _ ResourceProvider = new(MockResourceProvider)
|
||||||
var _ ResourceProviderCloser = new(MockResourceProvider)
|
var _ ResourceProviderCloser = new(MockResourceProvider)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// testProviderComponentFactory creates a componentFactory that contains only
|
||||||
|
// a single given.
|
||||||
|
func testProviderComponentFactory(name string, provider ResourceProvider) *basicComponentFactory {
|
||||||
|
return &basicComponentFactory{
|
||||||
|
providers: map[string]ResourceProviderFactory{
|
||||||
|
name: ResourceProviderFactoryFixed(provider),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// mockProviderWithConfigSchema is a test helper to concisely create a mock
|
||||||
|
// provider with the given schema for its own configuration.
|
||||||
|
func mockProviderWithConfigSchema(schema *configschema.Block) *MockResourceProvider {
|
||||||
|
return &MockResourceProvider{
|
||||||
|
GetSchemaReturn: &ProviderSchema{
|
||||||
|
Provider: schema,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// mockProviderWithResourceTypeSchema is a test helper to concisely create a mock
|
||||||
|
// provider with a schema containing a single resource type.
|
||||||
|
func mockProviderWithResourceTypeSchema(name string, schema *configschema.Block) *MockResourceProvider {
|
||||||
|
return &MockResourceProvider{
|
||||||
|
GetSchemaReturn: &ProviderSchema{
|
||||||
|
ResourceTypes: map[string]*configschema.Block{
|
||||||
|
name: schema,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// mockProviderWithDataSourceSchema is a test helper to concisely create a mock
|
||||||
|
// provider with a schema containing a single data source.
|
||||||
|
func mockProviderWithDataSourceSchema(name string, schema *configschema.Block) *MockResourceProvider {
|
||||||
|
return &MockResourceProvider{
|
||||||
|
GetSchemaReturn: &ProviderSchema{
|
||||||
|
DataSources: map[string]*configschema.Block{
|
||||||
|
name: schema,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue