github.com/minamijoyo/terraform@v0.7.8-0.20161029001309-18b3736ba44b/builtin/providers/test/data_source_test.go (about)

     1  package test
     2  
     3  import (
     4  	"errors"
     5  	"strings"
     6  	"testing"
     7  
     8  	"github.com/hashicorp/terraform/helper/resource"
     9  	"github.com/hashicorp/terraform/terraform"
    10  )
    11  
    12  func TestDataSource_dataSourceCount(t *testing.T) {
    13  	resource.UnitTest(t, resource.TestCase{
    14  		Providers: testAccProviders,
    15  		CheckDestroy: func(s *terraform.State) error {
    16  			return nil
    17  		},
    18  		Steps: []resource.TestStep{
    19  			{
    20  				Config: strings.TrimSpace(`
    21  data "test_data_source" "test" {
    22    count = 3
    23    input = "count-${count.index}"
    24  }
    25  
    26  resource "test_resource" "foo" {
    27    required     = "yep"
    28    required_map = {
    29      key = "value"
    30    }
    31  
    32    list = ["${data.test_data_source.test.*.output}"]
    33  }
    34  				`),
    35  				Check: func(s *terraform.State) error {
    36  					res, hasRes := s.RootModule().Resources["test_resource.foo"]
    37  					if !hasRes {
    38  						return errors.New("No test_resource.foo in state")
    39  					}
    40  					if res.Primary.Attributes["list.#"] != "3" {
    41  						return errors.New("Wrong list.#, expected 3")
    42  					}
    43  					if res.Primary.Attributes["list.0"] != "count-0" {
    44  						return errors.New("Wrong list.0, expected count-0")
    45  					}
    46  					if res.Primary.Attributes["list.1"] != "count-1" {
    47  						return errors.New("Wrong list.0, expected count-1")
    48  					}
    49  					if res.Primary.Attributes["list.2"] != "count-2" {
    50  						return errors.New("Wrong list.0, expected count-2")
    51  					}
    52  					return nil
    53  				},
    54  			},
    55  		},
    56  	})
    57  }