github.com/jrperritt/terraform@v0.1.1-0.20170525065507-96f391dafc38/builtin/providers/ovh/data_source_ovh_publiccloud_region_test.go (about)

     1  package ovh
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  	"testing"
     7  
     8  	"github.com/hashicorp/terraform/helper/resource"
     9  	"github.com/hashicorp/terraform/terraform"
    10  )
    11  
    12  func TestAccPublicCloudRegionDataSource_basic(t *testing.T) {
    13  	resource.Test(t, resource.TestCase{
    14  		PreCheck:  func() { testAccPreCheck(t) },
    15  		Providers: testAccProviders,
    16  		Steps: []resource.TestStep{
    17  			resource.TestStep{
    18  				Config: testAccPublicCloudRegionDatasourceConfig,
    19  				Check: resource.ComposeTestCheckFunc(
    20  					testAccPublicCloudRegionDatasource("data.ovh_publiccloud_region.region_attr.0"),
    21  					testAccPublicCloudRegionDatasource("data.ovh_publiccloud_region.region_attr.1"),
    22  					testAccPublicCloudRegionDatasource("data.ovh_publiccloud_region.region_attr.2"),
    23  				),
    24  			},
    25  		},
    26  	})
    27  }
    28  
    29  func testAccPublicCloudRegionDatasource(n string) resource.TestCheckFunc {
    30  	return func(s *terraform.State) error {
    31  		rs, ok := s.RootModule().Resources[n]
    32  
    33  		if !ok {
    34  			return fmt.Errorf("Can't find regions data source: %s", n)
    35  		}
    36  
    37  		if rs.Primary.ID == "" {
    38  			return fmt.Errorf("Cannot find region attributes for project %s and region %s", rs.Primary.Attributes["project_id"], rs.Primary.Attributes["region"])
    39  		}
    40  
    41  		return nil
    42  	}
    43  }
    44  
    45  var testAccPublicCloudRegionDatasourceConfig = fmt.Sprintf(`
    46  data "ovh_publiccloud_regions" "regions" {
    47    project_id = "%s"
    48  }
    49  
    50  data "ovh_publiccloud_region" "region_attr" {
    51    count = 3
    52    project_id = "${data.ovh_publiccloud_regions.regions.project_id}"
    53    name = "${element(data.ovh_publiccloud_regions.regions.names, count.index)}"
    54  }
    55  `, os.Getenv("OVH_PUBLIC_CLOUD"))