Skip to content

Commit 871fe07

Browse files
rashik-bhasinvsin12
authored andcommitted
Added - Isolate register resource and datasource
1 parent 69e047b commit 871fe07

File tree

221 files changed

+4464
-2512
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

221 files changed

+4464
-2512
lines changed

coverage/coverage_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414

1515
var totalRgx = regexp.MustCompile(`total:\s+\(statements\)\s+([^"]*)%`)
1616

17-
const CodeCoverageThreshold = 62.8
17+
const CodeCoverageThreshold = 56.1
1818

1919
func TestCoverage(t *testing.T) {
2020
if os.Getenv("CHECK_COVERAGE") != "true" {
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package acctest
2+
3+
import (
4+
"testing"
5+
)
6+
7+
func TestUnit_DependencyGraph(t *testing.T) {
8+
tests := []struct {
9+
name string
10+
}{
11+
{
12+
name: "Validate OCI dependency graph is getting set",
13+
},
14+
}
15+
for _, tt := range tests {
16+
t.Run(tt.name, func(t *testing.T) {
17+
t.Logf("Running %s", tt.name)
18+
InitDependencyGraph()
19+
if DependencyGraph["instance"] == nil {
20+
t.Errorf("Dependency Graph not getting set")
21+
}
22+
if DependencyGraph["loadBalancer"] == nil {
23+
t.Errorf("Dependency Graph not getting set")
24+
}
25+
})
26+
}
27+
}

internal/acctest/provider_test.go

Lines changed: 0 additions & 683 deletions
This file was deleted.

internal/acctest/test_helpers.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -401,9 +401,6 @@ func setEnvSetting(s, v string) error {
401401
return nil
402402
}
403403

404-
/*
405-
406-
*/
407404
func CheckJsonStringsEqual(expectedJsonString string, actualJsonString string) error {
408405
if expectedJsonString == actualJsonString {
409406
return nil

internal/acctest/test_helpers_test.go

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@ package acctest
33
import (
44
"encoding/base64"
55
"encoding/json"
6+
"os"
7+
"path"
68
"reflect"
79
"testing"
810

11+
"github.com/oracle/terraform-provider-oci/httpreplay"
12+
913
tf_client "github.com/oracle/terraform-provider-oci/internal/client"
1014

1115
"github.com/stretchr/testify/assert"
@@ -927,6 +931,16 @@ func TestUnitProviderTestCopy(t *testing.T) {
927931
}
928932

929933
func TestUnitRepresentationCopyWithNewProperties(t *testing.T) {
934+
auditEventResourceRepresentation := map[string]interface{}{
935+
"compartment_id": Representation{RepType: Required, Create: `${var.compartment_id}`},
936+
"end_time": Representation{RepType: Required, Create: `${timestamp()}`},
937+
}
938+
updatedAuditEventResourceRepresentation := map[string]interface{}{
939+
"compartment_id": Representation{RepType: Required, Create: `${var.compartment_id}`},
940+
"end_time": Representation{RepType: Required, Create: `${timestamp()}`},
941+
"dns_label": Representation{RepType: Required, Create: `dnslabel`},
942+
}
943+
newProperties := map[string]interface{}{"dns_label": Representation{RepType: Required, Create: `dnslabel`}}
930944
type args struct {
931945
representations map[string]interface{}
932946
newProperties map[string]interface{}
@@ -936,7 +950,14 @@ func TestUnitRepresentationCopyWithNewProperties(t *testing.T) {
936950
args args
937951
want map[string]interface{}
938952
}{
939-
// TODO: Add test cases.
953+
{
954+
name: "Positive test",
955+
args: args{
956+
representations: auditEventResourceRepresentation,
957+
newProperties: newProperties,
958+
},
959+
want: updatedAuditEventResourceRepresentation,
960+
},
940961
}
941962
for _, tt := range tests {
942963
t.Run(tt.name, func(t *testing.T) {
@@ -969,6 +990,16 @@ func TestUnitRepresentationCopyWithRemovedNestedProperties(t *testing.T) {
969990
}
970991

971992
func TestUnitRepresentationCopyWithRemovedProperties(t *testing.T) {
993+
auditEventResourceRepresentation := map[string]interface{}{
994+
"compartment_id": Representation{RepType: Required, Create: `${var.compartment_id}`},
995+
"end_time": Representation{RepType: Required, Create: `${timestamp()}`},
996+
"start_time": Representation{RepType: Required, Create: `${timeadd(timestamp(), "-1m")}`},
997+
}
998+
updatedAuditEventResourceRepresentation := map[string]interface{}{
999+
"compartment_id": Representation{RepType: Required, Create: `${var.compartment_id}`},
1000+
"end_time": Representation{RepType: Required, Create: `${timestamp()}`},
1001+
}
1002+
removedProperties := []string{"start_time"}
9721003
type args struct {
9731004
representations map[string]interface{}
9741005
removedProperties []string
@@ -978,7 +1009,14 @@ func TestUnitRepresentationCopyWithRemovedProperties(t *testing.T) {
9781009
args args
9791010
want map[string]interface{}
9801011
}{
981-
// TODO: Add test cases.
1012+
{
1013+
name: "Positive test",
1014+
args: args{
1015+
representations: auditEventResourceRepresentation,
1016+
removedProperties: removedProperties,
1017+
},
1018+
want: updatedAuditEventResourceRepresentation,
1019+
},
9821020
}
9831021
for _, tt := range tests {
9841022
t.Run(tt.name, func(t *testing.T) {
@@ -1205,3 +1243,36 @@ func TestUnit_updateNestedRepresentationRemoveProperty(t *testing.T) {
12051243
})
12061244
}
12071245
}
1246+
1247+
// issue-routing-tag: terraform/default
1248+
func TestUnitProviderConfig(t *testing.T) {
1249+
if httpreplay.ModeRecordReplay() {
1250+
t.Skip("Skip ProviderConfigTest in HttpReplay mode.")
1251+
}
1252+
if os.Getenv("TF_HOME_OVERRIDE") == "" {
1253+
t.Skip("This run requires you to set TF_HOME_OVERRIDE")
1254+
}
1255+
ProviderConfigTest(t, true, true, globalvar.AuthAPIKeySetting, "", nil) // ApiKey with required fields + disable auto-retries
1256+
ProviderConfigTest(t, false, true, globalvar.AuthAPIKeySetting, "", nil) // ApiKey without required fields
1257+
ProviderConfigTest(t, false, false, globalvar.AuthInstancePrincipalSetting, "", nil) // InstancePrincipal
1258+
ProviderConfigTest(t, true, false, "invalid-auth-setting", "", nil) // Invalid auth + disable auto-retries
1259+
configFile, keyFile, err := WriteConfigFile()
1260+
assert.Nil(t, err)
1261+
ProviderConfigTest(t, true, true, globalvar.AuthAPIKeySetting, "DEFAULT", nil) // ApiKey with required fields + disable auto-retries
1262+
ProviderConfigTest(t, false, true, globalvar.AuthAPIKeySetting, "DEFAULT", nil) // ApiKey without required fields
1263+
ProviderConfigTest(t, false, false, globalvar.AuthInstancePrincipalSetting, "DEFAULT", nil) // InstancePrincipal
1264+
ProviderConfigTest(t, true, false, "invalid-auth-setting", "DEFAULT", nil) // Invalid auth + disable auto-retries
1265+
ProviderConfigTest(t, false, false, globalvar.AuthAPIKeySetting, "PROFILE1", nil) // correct profileName
1266+
ProviderConfigTest(t, false, false, globalvar.AuthAPIKeySetting, "wrongProfile", nil) // Invalid profileName
1267+
//acctest.ProviderConfigTest(t, false, false, globalvar.AuthAPIKeySetting, "PROFILE2", nil) // correct profileName with mix and match
1268+
ProviderConfigTest(t, false, false, globalvar.AuthAPIKeySetting, "PROFILE3", nil) // correct profileName with mix and match & env
1269+
defer func() {
1270+
_ = utils.RemoveFile(configFile)
1271+
}()
1272+
defer func() {
1273+
_ = utils.RemoveFile(keyFile)
1274+
}()
1275+
defer func() {
1276+
_ = os.RemoveAll(path.Join(utils.GetHomeFolder(), globalvar.DefaultConfigDirName))
1277+
}()
1278+
}

internal/commonexport/commonexport_functions.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ package commonexport
22

33
import (
44
"fmt"
5-
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
6-
"github.com/oracle/terraform-provider-oci/internal/globalvar"
7-
"github.com/oracle/terraform-provider-oci/internal/utils"
85
"log"
96
"os"
107
"regexp"
118
"sort"
129
"strings"
10+
11+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
12+
"github.com/oracle/terraform-provider-oci/internal/globalvar"
13+
"github.com/oracle/terraform-provider-oci/internal/utils"
1314
)
1415

1516
func init() {

internal/commonexport/commonexport_types.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ package commonexport
22

33
import (
44
"fmt"
5-
"github.com/oracle/terraform-provider-oci/internal/utils"
65
"strings"
76
"sync"
87
"time"
98

9+
"github.com/oracle/terraform-provider-oci/internal/utils"
10+
1011
"github.com/hashicorp/terraform-exec/tfexec"
1112
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1213

internal/commonexport/export_variables_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package commonexport
22

33
import (
4-
"github.com/oracle/terraform-provider-oci/internal/utils"
54
"reflect"
65
"testing"
76

7+
"github.com/oracle/terraform-provider-oci/internal/utils"
8+
89
"github.com/stretchr/testify/assert"
910
)
1011

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package globalvar
2+
3+
import "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
4+
5+
var OciResources map[string]*schema.Resource
6+
var OciDatasources map[string]*schema.Resource

internal/provider/provider.go

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,6 @@ var ociProvider *schema.Provider
4747
var TerraformCLIVersion = globalvar.UnknownTerraformCLIVersion
4848
var AvoidWaitingForDeleteTarget bool
4949

50-
var OciResources map[string]*schema.Resource
51-
var OciDatasources map[string]*schema.Resource
52-
5350
// creating an interface to aid in unit tests
5451
type schemaResourceData interface {
5552
GetOkExists(string) (interface{}, bool)
@@ -207,41 +204,27 @@ func SchemaMap() map[string]*schema.Schema {
207204
}
208205
}
209206

210-
func RegisterResource(name string, resourceSchema *schema.Resource) {
211-
if OciResources == nil {
212-
OciResources = make(map[string]*schema.Resource)
213-
}
214-
OciResources[name] = resourceSchema
215-
}
216-
217-
func RegisterDatasource(name string, datasourceSchema *schema.Resource) {
218-
if OciDatasources == nil {
219-
OciDatasources = make(map[string]*schema.Resource)
220-
}
221-
OciDatasources[name] = datasourceSchema
222-
}
223-
224207
// This returns a map of all data sources to register with Terraform
225208
// The OciDatasources map is populated by each datasource's init function being invoked before it gets here
226209
func DataSourcesMap() map[string]*schema.Resource {
227210
// Register some aliases of registered datasources. These are registered for convenience and legacy reasons.
228-
RegisterDatasource("oci_core_listing_resource_version", tf_core.CoreAppCatalogListingResourceVersionDataSource())
229-
RegisterDatasource("oci_core_listing_resource_versions", tf_core.CoreAppCatalogListingResourceVersionsDataSource())
230-
RegisterDatasource("oci_core_shape", tf_core.CoreShapesDataSource())
231-
RegisterDatasource("oci_core_virtual_networks", tf_core.CoreVcnsDataSource())
232-
RegisterDatasource("oci_load_balancers", tf_load_balancer.LoadBalancerLoadBalancersDataSource())
233-
RegisterDatasource("oci_load_balancer_backendsets", tf_load_balancer.LoadBalancerBackendSetsDataSource())
234-
return OciDatasources
211+
tf_resource.RegisterDatasource("oci_core_listing_resource_version", tf_core.CoreAppCatalogListingResourceVersionDataSource())
212+
tf_resource.RegisterDatasource("oci_core_listing_resource_versions", tf_core.CoreAppCatalogListingResourceVersionsDataSource())
213+
tf_resource.RegisterDatasource("oci_core_shape", tf_core.CoreShapesDataSource())
214+
tf_resource.RegisterDatasource("oci_core_virtual_networks", tf_core.CoreVcnsDataSource())
215+
tf_resource.RegisterDatasource("oci_load_balancers", tf_load_balancer.LoadBalancerLoadBalancersDataSource())
216+
tf_resource.RegisterDatasource("oci_load_balancer_backendsets", tf_load_balancer.LoadBalancerBackendSetsDataSource())
217+
return globalvar.OciDatasources
235218
}
236219

237220
// This returns a map of all resources to register with Terraform
238221
// The OciResource map is populated by each resource's init function being invoked before it gets here
239222
func ResourcesMap() map[string]*schema.Resource {
240223
// Register some aliases of registered resources. These are registered for convenience and legacy reasons.
241-
RegisterResource("oci_core_virtual_network", tf_core.CoreVcnResource())
242-
RegisterResource("oci_load_balancer", tf_load_balancer.LoadBalancerLoadBalancerResource())
243-
RegisterResource("oci_load_balancer_backendset", tf_load_balancer.LoadBalancerBackendSetResource())
244-
return OciResources
224+
tf_resource.RegisterResource("oci_core_virtual_network", tf_core.CoreVcnResource())
225+
tf_resource.RegisterResource("oci_load_balancer", tf_load_balancer.LoadBalancerLoadBalancerResource())
226+
tf_resource.RegisterResource("oci_load_balancer_backendset", tf_load_balancer.LoadBalancerBackendSetResource())
227+
return globalvar.OciResources
245228
}
246229

247230
func ProviderConfig(d *schema.ResourceData) (interface{}, error) {

0 commit comments

Comments
 (0)