Skip to content

Commit c48bd4b

Browse files
committed
Add a test that properly tests staged deletes and that state is properly removed for virtual networks. Correct some identity provider requirements to match the latest APIs
1 parent 685d2d0 commit c48bd4b

File tree

4 files changed

+70
-2
lines changed

4 files changed

+70
-2
lines changed

core_virtual_network_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import (
1212
"github.com/hashicorp/terraform/helper/schema"
1313
"github.com/hashicorp/terraform/terraform"
1414

15+
"errors"
16+
1517
"github.com/stretchr/testify/suite"
1618
)
1719

@@ -25,6 +27,7 @@ type ResourceCoreVirtualNetworkTestSuite struct {
2527
ResourceName string
2628
Res *baremetal.VirtualNetwork
2729
DeletedRes *baremetal.VirtualNetwork
30+
DeletingRes *baremetal.VirtualNetwork
2831
}
2932

3033
func (s *ResourceCoreVirtualNetworkTestSuite) SetupTest() {
@@ -66,6 +69,17 @@ func (s *ResourceCoreVirtualNetworkTestSuite) SetupTest() {
6669
s.Res.ETag = "etag"
6770
s.Res.RequestID = "opcrequestid"
6871

72+
s.DeletingRes = &baremetal.VirtualNetwork{
73+
CidrBlock: "cidr_block",
74+
CompartmentID: "compartment_id",
75+
DefaultRoutingTableID: "default_routing_table_id",
76+
DefaultSecurityListID: "default_security_list_id",
77+
DisplayName: "display_name",
78+
ID: "id",
79+
State: baremetal.ResourceTerminating,
80+
TimeCreated: s.TimeCreated,
81+
}
82+
6983
s.DeletedRes = &baremetal.VirtualNetwork{
7084
CidrBlock: "cidr_block",
7185
CompartmentID: "compartment_id",
@@ -113,6 +127,30 @@ func (s *ResourceCoreVirtualNetworkTestSuite) TestCreateResourceCoreVirtualNetwo
113127
})
114128
}
115129

130+
func (s *ResourceCoreVirtualNetworkTestSuite) TestDeleteResourceCoreVirtualNetwork() {
131+
s.Client.On("GetVirtualNetwork", "id").Return(s.Res, nil).Times(2)
132+
s.Client.On("GetVirtualNetwork", "id").Return(s.DeletingRes, nil).Times(2)
133+
s.Client.On("GetVirtualNetwork", "id").Return(nil, errors.New("blah blah does not exist"))
134+
135+
resource.UnitTest(s.T(), resource.TestCase{
136+
Providers: s.Providers,
137+
Steps: []resource.TestStep{
138+
{
139+
Config: s.Config,
140+
Check: resource.ComposeTestCheckFunc(
141+
resource.TestCheckResourceAttr(s.ResourceName, "id", s.Res.ID),
142+
),
143+
},
144+
{
145+
Config: testProviderConfig,
146+
Check: resource.ComposeTestCheckFunc(
147+
testNoInstanceState("baremetal_core_virtual_network"),
148+
),
149+
},
150+
},
151+
})
152+
}
153+
116154
func (s *ResourceCoreVirtualNetworkTestSuite) TestCreateResourceCoreVirtualNetworkWithoutDisplayName() {
117155
s.Client.On("GetVirtualNetwork", "id").Return(s.Res, nil).Times(2)
118156
s.Client.On("GetVirtualNetwork", "id").Return(s.DeletedRes, nil)

identity_policy_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ var testPolicyConfig = `
2222
resource "baremetal_identity_policy" "p" {
2323
name = "%s"
2424
description = "%s"
25+
compartment_id = "%s"
2526
statements = %s
2627
}
2728
`
@@ -79,6 +80,7 @@ func (s *ResourceIdentityPolicyTestSuite) SetupTest() {
7980
s.Config = fmt.Sprintf(testProviderConfig+testPolicyConfig,
8081
"pol",
8182
"desc",
83+
"7",
8284
`["statementX","statementY"]`,
8385
)
8486
s.PolicyName = "baremetal_identity_policy.p"
@@ -96,6 +98,7 @@ func (s *ResourceIdentityPolicyTestSuite) SetupTest() {
9698
"CreatePolicy",
9799
"pol",
98100
"desc",
101+
"7",
99102
[]string{"statementX", "statementY"},
100103
(*baremetal.CreatePolicyOptions)(nil),
101104
).Return(s.Policy, nil)
@@ -133,6 +136,7 @@ func (s *ResourceIdentityPolicyTestSuite) TestUpdateResourceIdentityPolicy() {
133136
config := fmt.Sprintf(testProviderConfig+testPolicyConfig,
134137
"pol",
135138
"newdesc",
139+
"7",
136140
`["statementA","statementY", "statementZ"]`,
137141
)
138142

@@ -177,6 +181,7 @@ func (s *ResourceIdentityPolicyTestSuite) TestFailedUpdateResourceIdentityPolicy
177181
config := fmt.Sprintf(testProviderConfig+testPolicyConfig,
178182
"pol",
179183
"newdesc",
184+
"7",
180185
`["statementA", "statementB"]`,
181186
)
182187

@@ -230,6 +235,7 @@ func (s *ResourceIdentityPolicyTestSuite) TestUpdateResourceIdentityPolicyNameSh
230235
config := fmt.Sprintf(testProviderConfig+testPolicyConfig,
231236
"newname",
232237
"desc",
238+
"7",
233239
`["statementX", "statementY"]`,
234240
)
235241

@@ -242,6 +248,7 @@ func (s *ResourceIdentityPolicyTestSuite) TestUpdateResourceIdentityPolicyNameSh
242248
"CreatePolicy",
243249
"newname",
244250
"desc",
251+
"7",
245252
statements,
246253
(*baremetal.CreatePolicyOptions)(nil),
247254
).Return(&u, nil)

provider.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@ package main
55
import (
66
"crypto/rsa"
77

8+
"fmt"
9+
810
"github.com/MustWin/baremetal-sdk-go"
911
"github.com/MustWin/terraform-Oracle-BareMetal-Provider/core"
1012
"github.com/MustWin/terraform-Oracle-BareMetal-Provider/database"
1113
"github.com/MustWin/terraform-Oracle-BareMetal-Provider/identity"
1214
"github.com/MustWin/terraform-Oracle-BareMetal-Provider/objectstorage"
1315
"github.com/hashicorp/terraform/helper/schema"
1416
"github.com/hashicorp/terraform/terraform"
15-
"fmt"
1617
)
1718

1819
var descriptions map[string]string
@@ -110,7 +111,7 @@ func dataSourcesMap() map[string]*schema.Resource {
110111
"baremetal_database_db_systems": database.DBSystemDatasource(),
111112
"baremetal_database_db_system_shapes": database.DBSystemShapeDatasource(),
112113
"baremetal_database_db_versions": database.DBVersionDatasource(),
113-
"baremetal_database_supported_operations": database.SupportedOperationDatasource(),
114+
"baremetal_database_supported_operations": database.SupportedOperationDatasource(),
114115
"baremetal_identity_api_keys": identity.APIKeyDatasource(),
115116
"baremetal_objectstorage_bucket_summaries": objectstorage.BucketSummaryDatasource(),
116117
"baremetal_objectstorage_object_head": objectstorage.ObjectHeadDatasource(),

provider_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@ package main
55
import (
66
"testing"
77

8+
"errors"
9+
810
"github.com/MustWin/baremetal-sdk-go"
11+
"github.com/hashicorp/terraform/helper/resource"
912
"github.com/hashicorp/terraform/helper/schema"
13+
"github.com/hashicorp/terraform/terraform"
1014
"github.com/stretchr/testify/assert"
1115
)
1216

@@ -87,3 +91,21 @@ func TestProviderConfig(t *testing.T) {
8791
_, ok := client.(*baremetal.Client)
8892
assert.True(t, ok)
8993
}
94+
95+
// TestNoInstanceState determines if there is any state for a given name.
96+
func testNoInstanceState(name string) resource.TestCheckFunc {
97+
return func(s *terraform.State) error {
98+
ms := s.RootModule()
99+
rs, ok := ms.Resources[name]
100+
if !ok {
101+
return nil
102+
}
103+
104+
is := rs.Primary
105+
if is == nil {
106+
return nil
107+
}
108+
109+
return errors.New("State exists for primary resource " + name)
110+
}
111+
}

0 commit comments

Comments
 (0)