github.com/grange74/terraform@v0.7.0-rc3.0.20160722171430-8c8803864753/builtin/providers/scaleway/resource_scaleway_server_test.go (about) 1 package scaleway 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/hashicorp/terraform/helper/resource" 8 "github.com/hashicorp/terraform/terraform" 9 ) 10 11 func TestAccScalewayServer_Basic(t *testing.T) { 12 resource.Test(t, resource.TestCase{ 13 PreCheck: func() { testAccPreCheck(t) }, 14 Providers: testAccProviders, 15 CheckDestroy: testAccCheckScalewayServerDestroy, 16 Steps: []resource.TestStep{ 17 resource.TestStep{ 18 Config: testAccCheckScalewayServerConfig, 19 Check: resource.ComposeTestCheckFunc( 20 testAccCheckScalewayServerExists("scaleway_server.base"), 21 testAccCheckScalewayServerAttributes("scaleway_server.base"), 22 resource.TestCheckResourceAttr( 23 "scaleway_server.base", "type", "C1"), 24 resource.TestCheckResourceAttr( 25 "scaleway_server.base", "name", "test"), 26 resource.TestCheckResourceAttr( 27 "scaleway_server.base", "tags.0", "terraform-test"), 28 ), 29 }, 30 }, 31 }) 32 } 33 34 func testAccCheckScalewayServerDestroy(s *terraform.State) error { 35 client := testAccProvider.Meta().(*Client).scaleway 36 37 for _, rs := range s.RootModule().Resources { 38 if rs.Type != "scaleway" { 39 continue 40 } 41 42 _, err := client.GetServer(rs.Primary.ID) 43 44 if err == nil { 45 return fmt.Errorf("Server still exists") 46 } 47 } 48 49 return nil 50 } 51 52 func testAccCheckScalewayServerAttributes(n string) resource.TestCheckFunc { 53 return func(s *terraform.State) error { 54 rs, ok := s.RootModule().Resources[n] 55 if !ok { 56 return fmt.Errorf("Unknown resource: %s", n) 57 } 58 59 client := testAccProvider.Meta().(*Client).scaleway 60 server, err := client.GetServer(rs.Primary.ID) 61 62 if err != nil { 63 return err 64 } 65 66 if server.Name != "test" { 67 return fmt.Errorf("Server has wrong name") 68 } 69 if server.Image.Identifier != armImageIdentifier { 70 return fmt.Errorf("Wrong server image") 71 } 72 if server.CommercialType != "C1" { 73 return fmt.Errorf("Wrong server type") 74 } 75 76 return nil 77 } 78 } 79 80 func testAccCheckScalewayServerExists(n string) resource.TestCheckFunc { 81 return func(s *terraform.State) error { 82 rs, ok := s.RootModule().Resources[n] 83 84 if !ok { 85 return fmt.Errorf("Not found: %s", n) 86 } 87 88 if rs.Primary.ID == "" { 89 return fmt.Errorf("No Server ID is set") 90 } 91 92 client := testAccProvider.Meta().(*Client).scaleway 93 server, err := client.GetServer(rs.Primary.ID) 94 95 if err != nil { 96 return err 97 } 98 99 if server.Identifier != rs.Primary.ID { 100 return fmt.Errorf("Record not found") 101 } 102 103 return nil 104 } 105 } 106 107 var armImageIdentifier = "5faef9cd-ea9b-4a63-9171-9e26bec03dbc" 108 109 var testAccCheckScalewayServerConfig = fmt.Sprintf(` 110 resource "scaleway_server" "base" { 111 name = "test" 112 # ubuntu 14.04 113 image = "%s" 114 type = "C1" 115 tags = [ "terraform-test" ] 116 }`, armImageIdentifier)