Skip to content

Commit c80fbc2

Browse files
gitmknanonymous
andauthored
Feat/tsf unit (#1516)
* feat: add microservice unit * feat: add application_config unit Co-authored-by: anonymous <anonymous@mail.org>
1 parent 2f33f81 commit c80fbc2

File tree

3 files changed

+234
-0
lines changed

3 files changed

+234
-0
lines changed

tencentcloud/basic_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -902,3 +902,11 @@ variable "cynosdb_cluster_security_group_id" {
902902
`
903903

904904
// End of Cynosdb
905+
906+
// TSF
907+
const (
908+
defaultNamespaceId = "namespace-ym9mkeza"
909+
defaultTsfApplicationId = "application-v69bo6ev"
910+
)
911+
912+
// End of TSF
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
package tencentcloud
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"testing"
7+
8+
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
9+
"github.com/hashicorp/terraform-plugin-sdk/terraform"
10+
)
11+
12+
// go test -i; go test -test.run TestAccTencentCloudTsfApplicationConfigResource_basic -v
13+
func TestAccTencentCloudTsfApplicationConfigResource_basic(t *testing.T) {
14+
t.Parallel()
15+
16+
resource.Test(t, resource.TestCase{
17+
PreCheck: func() {
18+
testAccPreCheck(t)
19+
},
20+
Providers: testAccProviders,
21+
CheckDestroy: testAccCheckTsfApplicationConfigDestroy,
22+
Steps: []resource.TestStep{
23+
{
24+
Config: testAccTsfApplicationConfig,
25+
Check: resource.ComposeTestCheckFunc(
26+
testAccCheckTsfApplicationConfigExists("tencentcloud_tsf_application_config.application_config"),
27+
resource.TestCheckResourceAttrSet("tencentcloud_tsf_application_config.application_config", "id"),
28+
resource.TestCheckResourceAttr("tencentcloud_tsf_application_config.application_config", "config_name", "tf-test-config"),
29+
resource.TestCheckResourceAttr("tencentcloud_tsf_application_config.application_config", "config_version", "1.0"),
30+
resource.TestCheckResourceAttr("tencentcloud_tsf_application_config.application_config", "config_value", "name: \"name\""),
31+
resource.TestCheckResourceAttr("tencentcloud_tsf_application_config.application_config", "config_version_desc", "version desc"),
32+
// resource.TestCheckResourceAttr("tencentcloud_tsf_application_config.application_config", "encode_with_base64", "false"),
33+
),
34+
},
35+
{
36+
ResourceName: "tencentcloud_tsf_application_config.application_config",
37+
ImportState: true,
38+
ImportStateVerify: true,
39+
},
40+
},
41+
})
42+
}
43+
44+
func testAccCheckTsfApplicationConfigDestroy(s *terraform.State) error {
45+
logId := getLogId(contextNil)
46+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
47+
service := TsfService{client: testAccProvider.Meta().(*TencentCloudClient).apiV3Conn}
48+
for _, rs := range s.RootModule().Resources {
49+
if rs.Type != "tencentcloud_tsf_application_config" {
50+
continue
51+
}
52+
53+
res, err := service.DescribeTsfApplicationConfigById(ctx, rs.Primary.ID, "")
54+
if err != nil {
55+
return err
56+
}
57+
58+
if res != nil {
59+
return fmt.Errorf("tsf application config %s still exists", rs.Primary.ID)
60+
}
61+
}
62+
return nil
63+
}
64+
65+
func testAccCheckTsfApplicationConfigExists(r string) resource.TestCheckFunc {
66+
return func(s *terraform.State) error {
67+
logId := getLogId(contextNil)
68+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
69+
70+
rs, ok := s.RootModule().Resources[r]
71+
if !ok {
72+
return fmt.Errorf("resource %s is not found", r)
73+
}
74+
75+
service := TsfService{client: testAccProvider.Meta().(*TencentCloudClient).apiV3Conn}
76+
res, err := service.DescribeTsfApplicationConfigById(ctx, rs.Primary.ID, "")
77+
if err != nil {
78+
return err
79+
}
80+
81+
if res == nil {
82+
return fmt.Errorf("tsf application config %s is not found", rs.Primary.ID)
83+
}
84+
85+
return nil
86+
}
87+
}
88+
89+
const testAccTsfApplicationConfigVar = `
90+
variable "application_id" {
91+
default = "` + defaultTsfApplicationId + `"
92+
}
93+
`
94+
95+
const testAccTsfApplicationConfig = testAccTsfApplicationConfigVar + `
96+
97+
resource "tencentcloud_tsf_application_config" "application_config" {
98+
config_name = "tf-test-config"
99+
config_version = "1.0"
100+
config_value = "name: \"name\""
101+
application_id = var.application_id
102+
config_version_desc = "version desc"
103+
# config_type = ""
104+
# encode_with_base64 = false
105+
# program_id_list =
106+
}
107+
108+
`
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
package tencentcloud
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"strings"
7+
"testing"
8+
9+
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
10+
"github.com/hashicorp/terraform-plugin-sdk/terraform"
11+
)
12+
13+
// go test -i; go test -test.run TestAccTencentCloudTsfMicroserviceResource_basic -v
14+
func TestAccTencentCloudTsfMicroserviceResource_basic(t *testing.T) {
15+
t.Parallel()
16+
17+
resource.Test(t, resource.TestCase{
18+
PreCheck: func() {
19+
testAccPreCheck(t)
20+
},
21+
Providers: testAccProviders,
22+
CheckDestroy: testAccCheckTsfMicroserviceDestroy,
23+
Steps: []resource.TestStep{
24+
{
25+
Config: testAccTsfMicroservice,
26+
Check: resource.ComposeTestCheckFunc(
27+
testAccCheckTsfMicroserviceExists("tencentcloud_tsf_microservice.microservice"),
28+
resource.TestCheckResourceAttrSet("tencentcloud_tsf_microservice.microservice", "id"),
29+
resource.TestCheckResourceAttr("tencentcloud_tsf_microservice.microservice", "microservice_name", "test-microservice"),
30+
resource.TestCheckResourceAttr("tencentcloud_tsf_microservice.microservice", "microservice_desc", "desc-microservice"),
31+
resource.TestCheckResourceAttr("tencentcloud_tsf_microservice.microservice", "tags.createdBy", "terraform"),
32+
),
33+
},
34+
{
35+
ResourceName: "tencentcloud_tsf_microservice.microservice",
36+
ImportState: true,
37+
ImportStateVerify: true,
38+
},
39+
},
40+
})
41+
}
42+
43+
func testAccCheckTsfMicroserviceDestroy(s *terraform.State) error {
44+
logId := getLogId(contextNil)
45+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
46+
service := TsfService{client: testAccProvider.Meta().(*TencentCloudClient).apiV3Conn}
47+
for _, rs := range s.RootModule().Resources {
48+
if rs.Type != "tencentcloud_tsf_microservice" {
49+
continue
50+
}
51+
52+
idSplit := strings.Split(rs.Primary.ID, FILED_SP)
53+
if len(idSplit) != 2 {
54+
return fmt.Errorf("id is broken,%s", rs.Primary.ID)
55+
}
56+
namespaceId := idSplit[0]
57+
microserviceId := idSplit[1]
58+
59+
res, err := service.DescribeTsfMicroserviceById(ctx, namespaceId, microserviceId, "")
60+
if err != nil {
61+
return err
62+
}
63+
64+
if res != nil {
65+
return fmt.Errorf("tsf microservice %s still exists", rs.Primary.ID)
66+
}
67+
}
68+
return nil
69+
}
70+
71+
func testAccCheckTsfMicroserviceExists(r string) resource.TestCheckFunc {
72+
return func(s *terraform.State) error {
73+
logId := getLogId(contextNil)
74+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
75+
76+
rs, ok := s.RootModule().Resources[r]
77+
if !ok {
78+
return fmt.Errorf("resource %s is not found", r)
79+
}
80+
idSplit := strings.Split(rs.Primary.ID, FILED_SP)
81+
if len(idSplit) != 2 {
82+
return fmt.Errorf("id is broken,%s", rs.Primary.ID)
83+
}
84+
namespaceId := idSplit[0]
85+
microserviceId := idSplit[1]
86+
87+
service := TsfService{client: testAccProvider.Meta().(*TencentCloudClient).apiV3Conn}
88+
res, err := service.DescribeTsfMicroserviceById(ctx, namespaceId, microserviceId, "")
89+
if err != nil {
90+
return err
91+
}
92+
93+
if res == nil {
94+
return fmt.Errorf("tsf microservice %s is not found", rs.Primary.ID)
95+
}
96+
97+
return nil
98+
}
99+
}
100+
101+
const testAccTsfMicroserviceVar = `
102+
variable "namespace_id" {
103+
default = "` + defaultNamespaceId + `"
104+
}
105+
`
106+
107+
const testAccTsfMicroservice = testAccTsfMicroserviceVar + `
108+
109+
resource "tencentcloud_tsf_microservice" "microservice" {
110+
namespace_id = var.namespace_id
111+
microservice_name = "test-microservice"
112+
microservice_desc = "desc-microservice"
113+
tags = {
114+
"createdBy" = "terraform"
115+
}
116+
}
117+
118+
`

0 commit comments

Comments
 (0)