Skip to content

Commit 0a35dc9

Browse files
committed
Basic unit tests for lien.
1 parent 3bb176f commit 0a35dc9

File tree

1 file changed

+89
-0
lines changed

1 file changed

+89
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package google
2+
3+
import (
4+
"fmt"
5+
"strings"
6+
"testing"
7+
8+
"github.com/hashicorp/terraform/helper/acctest"
9+
"github.com/hashicorp/terraform/helper/resource"
10+
"github.com/hashicorp/terraform/terraform"
11+
resourceManager "google.golang.org/api/cloudresourcemanager/v1"
12+
)
13+
14+
func TestAccResourceManagerLien_basic(t *testing.T) {
15+
t.Parallel()
16+
17+
projectName := fmt.Sprintf("tf-test-%s", acctest.RandString(10))
18+
org := getTestOrgFromEnv(t)
19+
var lien resourceManager.Lien
20+
21+
resource.Test(t, resource.TestCase{
22+
PreCheck: func() { testAccPreCheck(t) },
23+
Providers: testAccProviders,
24+
// CheckDestroy: testAccCheckResourceManagerLienDestroy,
25+
Steps: []resource.TestStep{
26+
resource.TestStep{
27+
Config: testAccResourceManagerLien_basic(projectName, org),
28+
Check: resource.ComposeTestCheckFunc(
29+
testAccCheckResourceManagerLienExists(
30+
"google_resource_manager_lien.lien", projectName, &lien),
31+
),
32+
},
33+
resource.TestStep{
34+
ResourceName: "google_resource_manager_lien.lien",
35+
ImportState: true,
36+
ImportStateVerify: true,
37+
ImportStateIdFunc: func(s *terraform.State) (string, error) {
38+
return fmt.Sprintf("%s/%s",
39+
projectName,
40+
strings.Split(s.RootModule().Resources["google_resource_manager_lien.lien"].Primary.ID, "/")[1]), nil
41+
},
42+
},
43+
},
44+
})
45+
}
46+
47+
func testAccCheckResourceManagerLienExists(n, projectName string, lien *resourceManager.Lien) resource.TestCheckFunc {
48+
return func(s *terraform.State) error {
49+
rs, ok := s.RootModule().Resources[n]
50+
if !ok {
51+
return fmt.Errorf("Not found: %s", n)
52+
}
53+
54+
if rs.Primary.ID == "" {
55+
return fmt.Errorf("No ID is set")
56+
}
57+
58+
config := testAccProvider.Meta().(*Config)
59+
60+
found, err := config.clientResourceManager.Liens.List().Parent(fmt.Sprintf("projects/%s", projectName)).Do()
61+
if err != nil {
62+
return err
63+
}
64+
if len(found.Liens) != 1 {
65+
return fmt.Errorf("Lien %s not found", rs.Primary.ID)
66+
}
67+
68+
*lien = *found.Liens[0]
69+
70+
return nil
71+
}
72+
}
73+
74+
func testAccResourceManagerLien_basic(projectName, org string) string {
75+
return fmt.Sprintf(`
76+
resource "google_project" "project" {
77+
project_id = "%s"
78+
name = "some test project"
79+
org_id = "%s"
80+
}
81+
82+
resource "google_resourcemanager_lien" "lien" {
83+
parent = "projects/${google_project.project.project_id}"
84+
restrictions = ["resourcemanager.projects.delete"]
85+
origin = "something"
86+
reason = "something else"
87+
}
88+
`, projectName, org)
89+
}

0 commit comments

Comments
 (0)