github.com/gabrielperezs/terraform@v0.7.0-rc2.0.20160715084931-f7da2612946f/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 ), 27 }, 28 }, 29 }) 30 } 31 32 func testAccCheckScalewayServerDestroy(s *terraform.State) error { 33 client := testAccProvider.Meta().(*Client).scaleway 34 35 for _, rs := range s.RootModule().Resources { 36 if rs.Type != "scaleway" { 37 continue 38 } 39 40 _, err := client.GetServer(rs.Primary.ID) 41 42 if err == nil { 43 return fmt.Errorf("Server still exists") 44 } 45 } 46 47 return nil 48 } 49 50 func testAccCheckScalewayServerAttributes(n string) resource.TestCheckFunc { 51 return func(s *terraform.State) error { 52 rs, ok := s.RootModule().Resources[n] 53 if !ok { 54 return fmt.Errorf("Unknown resource: %s", n) 55 } 56 57 client := testAccProvider.Meta().(*Client).scaleway 58 server, err := client.GetServer(rs.Primary.ID) 59 60 if err != nil { 61 return err 62 } 63 64 if server.Name != "test" { 65 return fmt.Errorf("Server has wrong name") 66 } 67 if server.Image.Identifier != armImageIdentifier { 68 return fmt.Errorf("Wrong server image") 69 } 70 if server.CommercialType != "C1" { 71 return fmt.Errorf("Wrong server type") 72 } 73 74 return nil 75 } 76 } 77 78 func testAccCheckScalewayServerExists(n string) resource.TestCheckFunc { 79 return func(s *terraform.State) error { 80 rs, ok := s.RootModule().Resources[n] 81 82 if !ok { 83 return fmt.Errorf("Not found: %s", n) 84 } 85 86 if rs.Primary.ID == "" { 87 return fmt.Errorf("No Server ID is set") 88 } 89 90 client := testAccProvider.Meta().(*Client).scaleway 91 server, err := client.GetServer(rs.Primary.ID) 92 93 if err != nil { 94 return err 95 } 96 97 if server.Identifier != rs.Primary.ID { 98 return fmt.Errorf("Record not found") 99 } 100 101 return nil 102 } 103 } 104 105 var armImageIdentifier = "5faef9cd-ea9b-4a63-9171-9e26bec03dbc" 106 107 var testAccCheckScalewayServerConfig = fmt.Sprintf(` 108 resource "scaleway_server" "base" { 109 name = "test" 110 # ubuntu 14.04 111 image = "%s" 112 type = "C1" 113 }`, armImageIdentifier)