github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/azurerm/resource_arm_search_service_test.go (about) 1 package azurerm 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/hashicorp/terraform/helper/acctest" 8 "github.com/hashicorp/terraform/helper/resource" 9 "github.com/hashicorp/terraform/terraform" 10 "github.com/jen20/riviera/search" 11 ) 12 13 func TestAccAzureRMSearchService_basic(t *testing.T) { 14 ri := acctest.RandInt() 15 config := fmt.Sprintf(testAccAzureRMSearchService_basic, ri, ri) 16 17 resource.Test(t, resource.TestCase{ 18 PreCheck: func() { testAccPreCheck(t) }, 19 Providers: testAccProviders, 20 CheckDestroy: testCheckAzureRMSearchServiceDestroy, 21 Steps: []resource.TestStep{ 22 resource.TestStep{ 23 Config: config, 24 Check: resource.ComposeTestCheckFunc( 25 testCheckAzureRMSearchServiceExists("azurerm_search_service.test"), 26 resource.TestCheckResourceAttr( 27 "azurerm_search_service.test", "tags.%", "2"), 28 ), 29 }, 30 }, 31 }) 32 } 33 34 func TestAccAzureRMSearchService_updateReplicaCountAndTags(t *testing.T) { 35 ri := acctest.RandInt() 36 preConfig := fmt.Sprintf(testAccAzureRMSearchService_basic, ri, ri) 37 postConfig := fmt.Sprintf(testAccAzureRMSearchService_updated, ri, ri) 38 39 resource.Test(t, resource.TestCase{ 40 PreCheck: func() { testAccPreCheck(t) }, 41 Providers: testAccProviders, 42 CheckDestroy: testCheckAzureRMSearchServiceDestroy, 43 Steps: []resource.TestStep{ 44 resource.TestStep{ 45 Config: preConfig, 46 Check: resource.ComposeTestCheckFunc( 47 testCheckAzureRMSearchServiceExists("azurerm_search_service.test"), 48 resource.TestCheckResourceAttr( 49 "azurerm_search_service.test", "tags.%", "2"), 50 resource.TestCheckResourceAttr( 51 "azurerm_search_service.test", "replica_count", "1"), 52 ), 53 }, 54 55 resource.TestStep{ 56 Config: postConfig, 57 Check: resource.ComposeTestCheckFunc( 58 testCheckAzureRMSearchServiceExists("azurerm_search_service.test"), 59 resource.TestCheckResourceAttr( 60 "azurerm_search_service.test", "tags.%", "1"), 61 resource.TestCheckResourceAttr( 62 "azurerm_search_service.test", "replica_count", "2"), 63 ), 64 }, 65 }, 66 }) 67 } 68 69 func testCheckAzureRMSearchServiceExists(name string) resource.TestCheckFunc { 70 return func(s *terraform.State) error { 71 72 rs, ok := s.RootModule().Resources[name] 73 if !ok { 74 return fmt.Errorf("Not found: %s", name) 75 } 76 77 conn := testAccProvider.Meta().(*ArmClient).rivieraClient 78 79 readRequest := conn.NewRequestForURI(rs.Primary.ID) 80 readRequest.Command = &search.GetSearchService{} 81 82 readResponse, err := readRequest.Execute() 83 if err != nil { 84 return fmt.Errorf("Bad: GetSearchService: %s", err) 85 } 86 if !readResponse.IsSuccessful() { 87 return fmt.Errorf("Bad: GetSearchService: %s", readResponse.Error) 88 } 89 90 return nil 91 } 92 } 93 94 func testCheckAzureRMSearchServiceDestroy(s *terraform.State) error { 95 conn := testAccProvider.Meta().(*ArmClient).rivieraClient 96 97 for _, rs := range s.RootModule().Resources { 98 if rs.Type != "azurerm_search_service" { 99 continue 100 } 101 102 readRequest := conn.NewRequestForURI(rs.Primary.ID) 103 readRequest.Command = &search.GetSearchService{} 104 105 readResponse, err := readRequest.Execute() 106 if err != nil { 107 return fmt.Errorf("Bad: GetSearchService: %s", err) 108 } 109 110 if readResponse.IsSuccessful() { 111 return fmt.Errorf("Bad: Search Service still exists: %s", readResponse.Error) 112 } 113 } 114 115 return nil 116 } 117 118 var testAccAzureRMSearchService_basic = ` 119 resource "azurerm_resource_group" "test" { 120 name = "acctestRG_%d" 121 location = "West US" 122 } 123 resource "azurerm_search_service" "test" { 124 name = "acctestsearchservice%d" 125 resource_group_name = "${azurerm_resource_group.test.name}" 126 location = "West US" 127 sku = "standard" 128 129 tags { 130 environment = "staging" 131 database = "test" 132 } 133 } 134 ` 135 136 var testAccAzureRMSearchService_updated = ` 137 resource "azurerm_resource_group" "test" { 138 name = "acctestRG_%d" 139 location = "West US" 140 } 141 resource "azurerm_search_service" "test" { 142 name = "acctestsearchservice%d" 143 resource_group_name = "${azurerm_resource_group.test.name}" 144 location = "West US" 145 sku = "standard" 146 replica_count = 2 147 148 tags { 149 environment = "production" 150 } 151 } 152 `