Skip to content

Commit b9e78de

Browse files
committed
Add tests for server supported filters (display_name & state)
Server-side filter using `display_name` & `state` are now enabled for: - core_route_tables_data_source - core_security_lists_data_source - core_subnets_data_source - core_vcns_data_source - core_volume_backups_data_source - core_volumes_data_source
1 parent 7ab9aa1 commit b9e78de

6 files changed

+280
-66
lines changed

provider/core_route_tables_data_source_test.go

Lines changed: 58 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,19 @@ func (s *DatasourceCoreRouteTableTestSuite) SetupTest() {
2525
compartment_id = "${var.compartment_id}"
2626
display_name = "-tf-vcn"
2727
cidr_block = "10.0.0.0/16"
28+
}
29+
30+
resource "oci_core_route_table" "t" {
31+
compartment_id = "${var.compartment_id}"
32+
vcn_id = "${oci_core_virtual_network.t.id}"
33+
display_name = "-tf-route-table"
2834
}`
2935

3036
s.ResourceName = "data.oci_core_route_tables.t"
3137
}
3238

3339
func (s *DatasourceCoreRouteTableTestSuite) TestAccDatasourceRouteTable_basic() {
40+
compartmentID := getCompartmentIDForLegacyTests()
3441
resource.Test(s.T(), resource.TestCase{
3542
PreventPostDestroyRefresh: true,
3643
Providers: s.Providers,
@@ -39,27 +46,66 @@ func (s *DatasourceCoreRouteTableTestSuite) TestAccDatasourceRouteTable_basic()
3946
ImportState: true,
4047
ImportStateVerify: true,
4148
Config: s.Config + `
42-
data "oci_core_route_tables" "t" {
43-
compartment_id = "${var.compartment_id}"
44-
vcn_id = "${oci_core_virtual_network.t.id}"
45-
filter {
46-
name = "display_name"
47-
values = ["Default Route Table.*"]
48-
regex = true
49-
}
50-
}`,
49+
data "oci_core_route_tables" "t" {
50+
compartment_id = "${oci_core_route_table.t.compartment_id}"
51+
vcn_id = "${oci_core_virtual_network.t.id}"
52+
}`,
53+
Check: resource.ComposeTestCheckFunc(
54+
resource.TestCheckResourceAttrSet(s.ResourceName, "vcn_id"),
55+
resource.TestCheckResourceAttr(s.ResourceName, "route_tables.#", "2"),
56+
),
57+
},
58+
// Server-side filtering tests.
59+
{
60+
Config: s.Config + `
61+
data "oci_core_route_tables" "t" {
62+
compartment_id = "${oci_core_route_table.t.compartment_id}"
63+
vcn_id = "${oci_core_virtual_network.t.id}"
64+
display_name = "Default Route Table for -tf-vcn"
65+
}`,
5166
Check: resource.ComposeTestCheckFunc(
5267
resource.TestCheckResourceAttrSet(s.ResourceName, "vcn_id"),
5368
resource.TestCheckResourceAttr(s.ResourceName, "route_tables.#", "1"),
5469
resource.TestCheckResourceAttr(s.ResourceName, "route_tables.0.display_name", "Default Route Table for -tf-vcn"),
5570
resource.TestCheckResourceAttr(s.ResourceName, "route_tables.0.state", string(core.RouteTableLifecycleStateAvailable)),
56-
resource.TestCheckResourceAttrSet(s.ResourceName, "route_tables.0.id"),
57-
resource.TestCheckResourceAttrSet(s.ResourceName, "route_tables.0.compartment_id"),
58-
resource.TestCheckResourceAttrSet(s.ResourceName, "route_tables.0.vcn_id"),
71+
TestCheckResourceAttributesEqual(s.ResourceName, "route_tables.0.vcn_id", "oci_core_virtual_network.t", "id"),
72+
TestCheckResourceAttributesEqual(s.ResourceName, "route_tables.0.id", "oci_core_virtual_network.t", "default_route_table_id"),
73+
resource.TestCheckResourceAttr(s.ResourceName, "route_tables.0.compartment_id", compartmentID),
5974
resource.TestCheckResourceAttrSet(s.ResourceName, "route_tables.0.time_created"),
6075
resource.TestCheckResourceAttr(s.ResourceName, "route_tables.0.route_rules.#", "0"),
6176
),
6277
},
78+
{
79+
Config: s.Config + `
80+
data "oci_core_route_tables" "t" {
81+
compartment_id = "${oci_core_route_table.t.compartment_id}"
82+
vcn_id = "${oci_core_virtual_network.t.id}"
83+
display_name = "-tf-route-table"
84+
}`,
85+
Check: resource.ComposeTestCheckFunc(
86+
resource.TestCheckResourceAttrSet(s.ResourceName, "vcn_id"),
87+
resource.TestCheckResourceAttr(s.ResourceName, "route_tables.#", "1"),
88+
TestCheckResourceAttributesEqual(s.ResourceName, "route_tables.0.display_name", "oci_core_route_table.t", "display_name"),
89+
resource.TestCheckResourceAttr(s.ResourceName, "route_tables.0.state", string(core.RouteTableLifecycleStateAvailable)),
90+
TestCheckResourceAttributesEqual(s.ResourceName, "route_tables.0.vcn_id", "oci_core_virtual_network.t", "id"),
91+
TestCheckResourceAttributesEqual(s.ResourceName, "route_tables.0.id", "oci_core_route_table.t", "id"),
92+
resource.TestCheckResourceAttr(s.ResourceName, "route_tables.0.compartment_id", compartmentID),
93+
resource.TestCheckResourceAttrSet(s.ResourceName, "route_tables.0.time_created"),
94+
resource.TestCheckResourceAttr(s.ResourceName, "route_tables.0.route_rules.#", "0"),
95+
),
96+
},
97+
{
98+
Config: s.Config + `
99+
data "oci_core_route_tables" "t" {
100+
compartment_id = "${oci_core_route_table.t.compartment_id}"
101+
vcn_id = "${oci_core_virtual_network.t.id}"
102+
state = "` + string(core.RouteTableLifecycleStateProvisioning) + `"
103+
}`,
104+
Check: resource.ComposeTestCheckFunc(
105+
resource.TestCheckResourceAttrSet(s.ResourceName, "vcn_id"),
106+
resource.TestCheckResourceAttr(s.ResourceName, "route_tables.#", "0"),
107+
),
108+
},
63109
},
64110
},
65111
)

provider/core_security_lists_data_source_test.go

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ func (s *DatasourceCoreSecurityListTestSuite) SetupTest() {
2727
cidr_block = "10.0.0.0/16"
2828
compartment_id = "${var.compartment_id}"
2929
display_name = "-tf-vcn"
30+
}
31+
resource "oci_core_security_list" "t" {
32+
compartment_id = "${var.compartment_id}"
33+
display_name = "-tf-security-list"
34+
vcn_id = "${oci_core_virtual_network.t.id}"
3035
}`
3136
s.ResourceName = "data.oci_core_security_lists.t"
3237
}
@@ -52,11 +57,11 @@ func (s *DatasourceCoreSecurityListTestSuite) TestAccDatasourceCoreSecurityLists
5257
Check: resource.ComposeTestCheckFunc(
5358
resource.TestCheckResourceAttrSet(s.ResourceName, "vcn_id"),
5459
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.#", "1"),
60+
TestCheckResourceAttributesEqual(s.ResourceName, "security_lists.0.id", "oci_core_virtual_network.t", "default_security_list_id"),
5561
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.0.display_name", "Default Security List for -tf-vcn"),
5662
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.0.ingress_security_rules.0.tcp_options.0.max", "22"),
5763
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.0.state", string(core.SecurityListLifecycleStateAvailable)),
58-
resource.TestCheckResourceAttrSet(s.ResourceName, "security_lists.0.id"),
59-
resource.TestCheckResourceAttrSet(s.ResourceName, "security_lists.0.vcn_id"),
64+
TestCheckResourceAttributesEqual(s.ResourceName, "security_lists.0.vcn_id", "oci_core_virtual_network.t", "id"),
6065
resource.TestCheckResourceAttrSet(s.ResourceName, "security_lists.0.time_created"),
6166
),
6267
},
@@ -75,7 +80,7 @@ func (s *DatasourceCoreSecurityListTestSuite) TestAccDatasourceCoreSecurityLists
7580
}
7681
}`, string(core.SecurityListLifecycleStateTerminated), string(core.SecurityListLifecycleStateAvailable)),
7782
Check: resource.ComposeTestCheckFunc(
78-
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.#", "1"),
83+
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.#", "2"),
7984
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.0.state", string(core.SecurityListLifecycleStateAvailable)),
8085
),
8186
},
@@ -97,6 +102,51 @@ func (s *DatasourceCoreSecurityListTestSuite) TestAccDatasourceCoreSecurityLists
97102
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.#", "0"),
98103
),
99104
},
105+
// Server-side filtering tests.
106+
{
107+
Config: s.Config + `
108+
data "oci_core_security_lists" "t" {
109+
compartment_id = "${var.compartment_id}"
110+
vcn_id = "${oci_core_virtual_network.t.id}"
111+
display_name = "Default Security List for -tf-vcn"
112+
}`,
113+
Check: resource.ComposeTestCheckFunc(
114+
resource.TestCheckResourceAttrSet(s.ResourceName, "vcn_id"),
115+
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.#", "1"),
116+
TestCheckResourceAttributesEqual(s.ResourceName, "security_lists.0.id", "oci_core_virtual_network.t", "default_security_list_id"),
117+
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.0.display_name", "Default Security List for -tf-vcn"),
118+
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.0.state", string(core.SecurityListLifecycleStateAvailable)),
119+
TestCheckResourceAttributesEqual(s.ResourceName, "security_lists.0.vcn_id", "oci_core_virtual_network.t", "id"),
120+
),
121+
},
122+
{
123+
Config: s.Config + `
124+
data "oci_core_security_lists" "t" {
125+
compartment_id = "${var.compartment_id}"
126+
vcn_id = "${oci_core_virtual_network.t.id}"
127+
display_name = "-tf-security-list"
128+
}`,
129+
Check: resource.ComposeTestCheckFunc(
130+
resource.TestCheckResourceAttrSet(s.ResourceName, "vcn_id"),
131+
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.#", "1"),
132+
TestCheckResourceAttributesEqual(s.ResourceName, "security_lists.0.id", "oci_core_security_list.t", "id"),
133+
TestCheckResourceAttributesEqual(s.ResourceName, "security_lists.0.display_name", "oci_core_security_list.t", "display_name"),
134+
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.0.state", string(core.SecurityListLifecycleStateAvailable)),
135+
TestCheckResourceAttributesEqual(s.ResourceName, "security_lists.0.vcn_id", "oci_core_virtual_network.t", "id"),
136+
),
137+
},
138+
{
139+
Config: s.Config + `
140+
data "oci_core_security_lists" "t" {
141+
compartment_id = "${var.compartment_id}"
142+
vcn_id = "${oci_core_virtual_network.t.id}"
143+
state = "` + string(core.SecurityListLifecycleStateAvailable) + `"
144+
}`,
145+
Check: resource.ComposeTestCheckFunc(
146+
resource.TestCheckResourceAttrSet(s.ResourceName, "vcn_id"),
147+
resource.TestCheckResourceAttr(s.ResourceName, "security_lists.#", "2"),
148+
),
149+
},
100150
},
101151
},
102152
)

provider/core_subnets_data_source_test.go

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ func (s *DatasourceCoreSubnetTestSuite) SetupTest() {
4949
}
5050

5151
func (s *DatasourceCoreSubnetTestSuite) TestAccDatasourceCoreSubnet_basic() {
52-
5352
resource.Test(s.T(), resource.TestCase{
5453
PreventPostDestroyRefresh: true,
5554
Providers: s.Providers,
@@ -62,34 +61,56 @@ func (s *DatasourceCoreSubnetTestSuite) TestAccDatasourceCoreSubnet_basic() {
6261
data "oci_core_subnets" "s" {
6362
compartment_id = "${var.compartment_id}"
6463
vcn_id = "${oci_core_virtual_network.vcn1.id}"
65-
depends_on = ["oci_core_subnet.s"]
6664
filter {
6765
name = "availability_domain"
68-
values = ["${lookup(data.oci_identity_availability_domains.ADs.availability_domains[1], "name")}"]
66+
values = ["${oci_core_subnet.s.*.availability_domain[1]}"]
6967
}
7068
}`,
7169
Check: resource.ComposeTestCheckFunc(
7270
resource.TestCheckResourceAttrSet(s.ResourceName, "vcn_id"),
7371
resource.TestCheckResourceAttr(s.ResourceName, "subnets.#", "1"),
74-
resource.TestCheckResourceAttrSet(s.ResourceName, "subnets.0.availability_domain"),
72+
TestCheckResourceAttributesEqual(s.ResourceName, "subnets.0.availability_domain", "oci_core_subnet.s.1", "availability_domain"),
7573
resource.TestCheckResourceAttr(s.ResourceName, "subnets.0.cidr_block", "10.1.21.0/24"),
7674
resource.TestCheckResourceAttr(s.ResourceName, "subnets.0.display_name", "subnet1"),
7775
resource.TestCheckResourceAttr(s.ResourceName, "subnets.0.dns_label", "subnet1"),
78-
resource.TestCheckResourceAttrSet(s.ResourceName, "subnets.0.id"),
76+
TestCheckResourceAttributesEqual(s.ResourceName, "subnets.0.id", "oci_core_subnet.s.1", "id"),
7977
resource.TestCheckResourceAttr(s.ResourceName, "subnets.0.prohibit_public_ip_on_vnic", "false"),
80-
resource.TestCheckResourceAttrSet(s.ResourceName, "subnets.0.route_table_id"),
78+
TestCheckResourceAttributesEqual(s.ResourceName, "subnets.0.route_table_id", "oci_core_subnet.s.1", "route_table_id"),
8179
resource.TestCheckResourceAttr(s.ResourceName, "subnets.0.security_list_ids.#", "1"),
8280
resource.TestCheckResourceAttr(s.ResourceName, "subnets.0.state", string(core.SubnetLifecycleStateAvailable)),
83-
resource.TestCheckResourceAttrSet(s.ResourceName, "subnets.0.time_created"),
84-
resource.TestCheckResourceAttrSet(s.ResourceName, "subnets.0.vcn_id"),
85-
resource.TestCheckResourceAttrSet(s.ResourceName, "subnets.0.dhcp_options_id"),
86-
resource.TestCheckResourceAttrSet(s.ResourceName, "subnets.0.virtual_router_ip"),
87-
resource.TestCheckResourceAttrSet(s.ResourceName, "subnets.0.virtual_router_mac"),
88-
resource.TestCheckResourceAttrSet(s.ResourceName, "subnets.0.subnet_domain_name"),
81+
TestCheckResourceAttributesEqual(s.ResourceName, "subnets.0.time_created", "oci_core_subnet.s.1", "time_created"),
82+
TestCheckResourceAttributesEqual(s.ResourceName, "subnets.0.vcn_id", "oci_core_subnet.s.1", "vcn_id"),
83+
TestCheckResourceAttributesEqual(s.ResourceName, "subnets.0.dhcp_options_id", "oci_core_subnet.s.1", "dhcp_options_id"),
84+
TestCheckResourceAttributesEqual(s.ResourceName, "subnets.0.virtual_router_ip", "oci_core_subnet.s.1", "virtual_router_ip"),
85+
TestCheckResourceAttributesEqual(s.ResourceName, "subnets.0.virtual_router_mac", "oci_core_subnet.s.1", "virtual_router_mac"),
86+
TestCheckResourceAttributesEqual(s.ResourceName, "subnets.0.subnet_domain_name", "oci_core_subnet.s.1", "subnet_domain_name"),
87+
),
88+
},
89+
// Server-side filtering tests.
90+
{
91+
Config: s.Config + `
92+
data "oci_core_subnets" "s" {
93+
compartment_id = "${var.compartment_id}"
94+
vcn_id = "${oci_core_virtual_network.vcn1.id}"
95+
display_name = "${oci_core_subnet.s.2.display_name}"
96+
}`,
97+
Check: resource.ComposeTestCheckFunc(
98+
resource.TestCheckResourceAttrSet(s.ResourceName, "vcn_id"),
99+
resource.TestCheckResourceAttr(s.ResourceName, "subnets.#", "1"),
100+
TestCheckResourceAttributesEqual(s.ResourceName, "subnets.0.id", "oci_core_subnet.s.2", "id"),
101+
),
102+
},
103+
{
104+
Config: s.Config + `
105+
data "oci_core_subnets" "s" {
106+
compartment_id = "${var.compartment_id}"
107+
vcn_id = "${oci_core_virtual_network.vcn1.id}"
108+
state = "${oci_core_subnet.s.0.state}" # Adding implicit dependency
109+
}`,
110+
Check: resource.ComposeTestCheckFunc(
111+
resource.TestCheckResourceAttrSet(s.ResourceName, "vcn_id"),
112+
resource.TestCheckResourceAttr(s.ResourceName, "subnets.#", "3"),
89113
),
90-
// Work around for terraform bug where depends_on results in "plan was not empty"
91-
// https://github.com/hashicorp/terraform/issues/11139
92-
ExpectNonEmptyPlan: true,
93114
},
94115
},
95116
},

provider/core_vcns_data_source_test.go

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,13 @@ func (s *DatasourceCoreVirtualNetworkTestSuite) SetupTest() {
2929
display_name = "{{.token}}"
3030
cidr_block = "10.0.0.0/16"
3131
dns_label = "vcn1"
32-
}`, nil)
32+
}
33+
resource "oci_core_virtual_network" "u" {
34+
compartment_id = "${var.compartment_id}"
35+
display_name = "{{.otherToken}}"
36+
cidr_block = "10.0.0.0/16"
37+
dns_label = "vcn2"
38+
}`, map[string]string{"otherToken": s.Token + "-2"})
3339
s.ResourceName = "data.oci_core_virtual_networks.t"
3440
}
3541

@@ -43,25 +49,47 @@ func (s *DatasourceCoreVirtualNetworkTestSuite) TestAccDatasourceCoreVirtualNetw
4349
ImportState: true,
4450
ImportStateVerify: true,
4551
Config: s.Config + s.TokenFn(`
46-
data "oci_core_virtual_networks" "t" {
47-
compartment_id = "${oci_core_virtual_network.t.compartment_id}"
48-
filter {
49-
name = "display_name"
50-
values = ["{{.token}}"]
51-
}
52-
}`, nil),
52+
data "oci_core_virtual_networks" "t" {
53+
compartment_id = "${oci_core_virtual_network.t.compartment_id}"
54+
filter {
55+
name = "display_name"
56+
values = ["{{.token}}"]
57+
}
58+
}`, nil),
5359
Check: resource.ComposeTestCheckFunc(
5460
resource.TestCheckResourceAttr(s.ResourceName, "virtual_networks.#", "1"),
5561
resource.TestCheckResourceAttr(s.ResourceName, "virtual_networks.0.display_name", s.Token),
5662
resource.TestCheckResourceAttr(s.ResourceName, "virtual_networks.0.cidr_block", "10.0.0.0/16"),
57-
resource.TestCheckResourceAttrSet(s.ResourceName, "virtual_networks.0.id"),
58-
resource.TestCheckResourceAttrSet(s.ResourceName, "virtual_networks.0.default_route_table_id"),
59-
resource.TestCheckResourceAttrSet(s.ResourceName, "virtual_networks.0.default_security_list_id"),
60-
resource.TestCheckResourceAttrSet(s.ResourceName, "virtual_networks.0.default_dhcp_options_id"),
63+
TestCheckResourceAttributesEqual(s.ResourceName, "virtual_networks.0.id", "oci_core_virtual_network.t", "id"),
64+
TestCheckResourceAttributesEqual(s.ResourceName, "virtual_networks.0.default_route_table_id", "oci_core_virtual_network.t", "default_route_table_id"),
65+
TestCheckResourceAttributesEqual(s.ResourceName, "virtual_networks.0.default_security_list_id", "oci_core_virtual_network.t", "default_security_list_id"),
66+
TestCheckResourceAttributesEqual(s.ResourceName, "virtual_networks.0.default_dhcp_options_id", "oci_core_virtual_network.t", "default_dhcp_options_id"),
6167
resource.TestCheckResourceAttr(s.ResourceName, "virtual_networks.0.dns_label", "vcn1"),
6268
resource.TestCheckResourceAttr(s.ResourceName, "virtual_networks.0.state", string(core.VcnLifecycleStateAvailable)),
63-
resource.TestCheckResourceAttrSet(s.ResourceName, "virtual_networks.0.time_created"),
64-
resource.TestCheckResourceAttrSet(s.ResourceName, "virtual_networks.0.vcn_domain_name"),
69+
TestCheckResourceAttributesEqual(s.ResourceName, "virtual_networks.0.time_created", "oci_core_virtual_network.t", "time_created"),
70+
TestCheckResourceAttributesEqual(s.ResourceName, "virtual_networks.0.vcn_domain_name", "oci_core_virtual_network.t", "vcn_domain_name"),
71+
),
72+
},
73+
// Server-side filtering tests.
74+
{
75+
Config: s.Config + `
76+
data "oci_core_virtual_networks" "t" {
77+
compartment_id = "${oci_core_virtual_network.u.compartment_id}"
78+
display_name = "${oci_core_virtual_network.u.display_name}"
79+
}`,
80+
Check: resource.ComposeTestCheckFunc(
81+
resource.TestCheckResourceAttr(s.ResourceName, "virtual_networks.#", "1"),
82+
TestCheckResourceAttributesEqual(s.ResourceName, "virtual_networks.0.id", "oci_core_virtual_network.u", "id"),
83+
),
84+
},
85+
{
86+
Config: s.Config + s.TokenFn(`
87+
data "oci_core_virtual_networks" "t" {
88+
compartment_id = "${oci_core_virtual_network.t.compartment_id}"
89+
display_name = "does-not-exit"
90+
}`, nil),
91+
Check: resource.ComposeTestCheckFunc(
92+
resource.TestCheckResourceAttr(s.ResourceName, "virtual_networks.#", "0"),
6593
),
6694
},
6795
},

0 commit comments

Comments
 (0)