|
3 | 3 | package main |
4 | 4 |
|
5 | 5 | import ( |
| 6 | + "regexp" |
6 | 7 | "testing" |
7 | | - "time" |
8 | 8 |
|
9 | 9 | "github.com/MustWin/baremetal-sdk-go" |
10 | 10 | "github.com/hashicorp/terraform/helper/resource" |
11 | 11 | "github.com/hashicorp/terraform/helper/schema" |
12 | 12 | "github.com/hashicorp/terraform/terraform" |
13 | | - |
14 | | - "github.com/stretchr/testify/suite" |
15 | 13 | ) |
16 | 14 |
|
17 | | -type ResourceCoreSubnetTestSuite struct { |
18 | | - suite.Suite |
19 | | - Client mockableClient |
20 | | - Provider terraform.ResourceProvider |
21 | | - Providers map[string]terraform.ResourceProvider |
22 | | - TimeCreated baremetal.Time |
23 | | - Config string |
24 | | - ResourceName string |
25 | | -} |
26 | | - |
27 | | -func (s *ResourceCoreSubnetTestSuite) SetupTest() { |
28 | | - s.Client = GetTestProvider() |
29 | | - |
30 | | - s.Provider = Provider( |
| 15 | +func TestResourceCoreSubnetCreate(t *testing.T) { |
| 16 | + client := GetTestProvider() |
| 17 | + provider := Provider( |
31 | 18 | func(d *schema.ResourceData) (interface{}, error) { |
32 | | - return s.Client, nil |
| 19 | + return client, nil |
33 | 20 | }, |
34 | 21 | ) |
35 | 22 |
|
36 | | - s.Providers = map[string]terraform.ResourceProvider{ |
37 | | - "baremetal": s.Provider, |
38 | | - } |
39 | | - |
40 | | - s.TimeCreated = baremetal.Time{Time: time.Now()} |
41 | | - |
42 | | - s.Config = subnetConfig |
43 | | - s.Config += testProviderConfig() |
| 23 | + config := ` |
| 24 | +data "baremetal_identity_availability_domains" "ADs" { |
| 25 | + compartment_id = "${var.compartment_id}" |
| 26 | +} |
44 | 27 |
|
45 | | - s.ResourceName = "baremetal_core_subnet.WebSubnetAD1" |
| 28 | +resource "baremetal_core_virtual_network" "t" { |
| 29 | + cidr_block = "10.0.0.0/16" |
| 30 | + compartment_id = "${var.compartment_id}" |
| 31 | + display_name = "network_name" |
| 32 | +} |
46 | 33 |
|
| 34 | +resource "baremetal_core_subnet" "s" { |
| 35 | + availability_domain = "${data.baremetal_identity_availability_domains.ADs.availability_domains.0.name}" |
| 36 | + compartment_id = "${var.compartment_id}" |
| 37 | + vcn_id = "${baremetal_core_virtual_network.t.id}" |
| 38 | + security_list_ids = ["${baremetal_core_virtual_network.t.default_security_list_id}"] |
| 39 | + route_table_id = "${baremetal_core_virtual_network.t.default_route_table_id}" |
| 40 | + dhcp_options_id = "${baremetal_core_virtual_network.t.default_dhcp_options_id}" |
| 41 | + cidr_block = "10.0.2.0/24" |
47 | 42 | } |
| 43 | + ` |
| 44 | + config += testProviderConfig() |
48 | 45 |
|
49 | | -func (s *ResourceCoreSubnetTestSuite) TestCreateResourceCoreSubnet() { |
| 46 | + resourceName := "baremetal_core_subnet.s" |
50 | 47 |
|
51 | | - resource.UnitTest(s.T(), resource.TestCase{ |
52 | | - Providers: s.Providers, |
| 48 | + resource.UnitTest(t, resource.TestCase{ |
| 49 | + Providers: map[string]terraform.ResourceProvider{ |
| 50 | + "baremetal": provider, |
| 51 | + }, |
53 | 52 | Steps: []resource.TestStep{ |
54 | 53 | { |
55 | 54 | ImportState: true, |
56 | 55 | ImportStateVerify: true, |
57 | | - Config: s.Config, |
58 | | - Check: resource.ComposeTestCheckFunc( |
59 | | - resource.TestCheckResourceAttrSet(s.ResourceName, "availability_domain"), |
60 | | - resource.TestCheckResourceAttr(s.ResourceName, "display_name", "WebSubnetAD1"), |
61 | | - resource.TestCheckResourceAttrSet(s.ResourceName, "id"), |
62 | | - resource.TestCheckResourceAttr(s.ResourceName, "state", baremetal.ResourceAvailable), |
63 | | - resource.TestCheckResourceAttrSet(s.ResourceName, "time_created"), |
| 56 | + Config: config, |
| 57 | + Check: resource.ComposeAggregateTestCheckFunc( |
| 58 | + resource.TestMatchResourceAttr(resourceName, "compartment_id", regexp.MustCompile("ocid1\\.compartment\\.oc1\\..*")), |
| 59 | + resource.TestCheckResourceAttrSet(resourceName, "availability_domain"), |
| 60 | + resource.TestMatchResourceAttr(resourceName, "vcn_id", regexp.MustCompile("ocid1\\.vcn\\.oc1\\..*")), |
| 61 | + resource.TestMatchResourceAttr(resourceName, "dhcp_options_id", regexp.MustCompile("ocid1\\.dhcpoptions\\.oc1\\..*")), |
| 62 | + resource.TestMatchResourceAttr(resourceName, "route_table_id", regexp.MustCompile("ocid1\\.routetable\\.oc1\\..*")), |
| 63 | + resource.TestCheckResourceAttr(resourceName, "security_list_ids.#", "1"), |
| 64 | + resource.TestCheckResourceAttr(resourceName, "cidr_block", "10.0.2.0/24"), |
| 65 | + resource.TestCheckResourceAttrSet(resourceName, "display_name"), |
| 66 | + resource.TestCheckResourceAttr(resourceName, "dns_label", ""), |
| 67 | + resource.TestCheckResourceAttr(resourceName, "prohibit_public_ip_on_vnic", "false"), |
| 68 | + resource.TestMatchResourceAttr(resourceName, "id", regexp.MustCompile("ocid1\\.subnet\\.oc1\\..*")), |
| 69 | + resource.TestCheckResourceAttr(resourceName, "state", baremetal.ResourceAvailable), |
| 70 | + resource.TestCheckResourceAttrSet(resourceName, "time_created"), |
| 71 | + resource.TestCheckResourceAttrSet(resourceName, "virtual_router_ip"), |
| 72 | + resource.TestCheckResourceAttrSet(resourceName, "virtual_router_mac"), |
64 | 73 | ), |
65 | 74 | }, |
66 | 75 | }, |
67 | 76 | }) |
68 | 77 | } |
69 | 78 |
|
70 | | -func (s *ResourceCoreSubnetTestSuite) TestTerminateSubnet() { |
71 | | - if IsAccTest() { |
72 | | - s.T().Skip() |
73 | | - } |
| 79 | +func TestResourceCoreSubnetTerminate(t *testing.T) { |
| 80 | + client := GetTestProvider() |
| 81 | + provider := Provider( |
| 82 | + func(d *schema.ResourceData) (interface{}, error) { |
| 83 | + return client, nil |
| 84 | + }, |
| 85 | + ) |
| 86 | + config := ` |
| 87 | +data "baremetal_identity_availability_domains" "ADs" { |
| 88 | + compartment_id = "${var.compartment_id}" |
| 89 | +} |
| 90 | +
|
| 91 | +resource "baremetal_core_virtual_network" "t" { |
| 92 | + cidr_block = "10.0.0.0/16" |
| 93 | + compartment_id = "${var.compartment_id}" |
| 94 | + display_name = "network_name" |
| 95 | +} |
74 | 96 |
|
75 | | - resource.UnitTest(s.T(), resource.TestCase{ |
76 | | - Providers: s.Providers, |
| 97 | +resource "baremetal_core_subnet" "s" { |
| 98 | + availability_domain = "${data.baremetal_identity_availability_domains.ADs.availability_domains.0.name}" |
| 99 | + compartment_id = "${var.compartment_id}" |
| 100 | + vcn_id = "${baremetal_core_virtual_network.t.id}" |
| 101 | + security_list_ids = ["${baremetal_core_virtual_network.t.default_security_list_id}"] |
| 102 | + route_table_id = "${baremetal_core_virtual_network.t.default_route_table_id}" |
| 103 | + dhcp_options_id = "${baremetal_core_virtual_network.t.default_dhcp_options_id}" |
| 104 | + cidr_block = "10.0.2.0/24" |
| 105 | +} |
| 106 | + ` |
| 107 | + config += testProviderConfig() |
| 108 | + resource.UnitTest(t, resource.TestCase{ |
| 109 | + Providers: map[string]terraform.ResourceProvider{ |
| 110 | + "baremetal": provider, |
| 111 | + }, |
77 | 112 | Steps: []resource.TestStep{ |
78 | 113 | { |
79 | 114 | ImportState: true, |
80 | 115 | ImportStateVerify: true, |
81 | | - Config: s.Config, |
| 116 | + Config: config, |
82 | 117 | }, |
83 | 118 | { |
84 | | - Config: s.Config, |
| 119 | + Config: config, |
85 | 120 | Destroy: true, |
86 | 121 | }, |
87 | 122 | }, |
88 | 123 | }) |
89 | 124 |
|
90 | 125 | } |
91 | | - |
92 | | -func TestResourceCoreSubnetTestSuite(t *testing.T) { |
93 | | - suite.Run(t, new(ResourceCoreSubnetTestSuite)) |
94 | | -} |
|
0 commit comments