package consul import ( "fmt" "testing" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/terraform" ) func TestAccDataConsulAgentSelf_basic(t *testing.T) { resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, Providers: testAccProviders, Steps: []resource.TestStep{ resource.TestStep{ Config: testAccDataConsulAgentSelfConfig, Check: resource.ComposeTestCheckFunc( testAccCheckDataSourceValue("data.consul_agent_self.read", "acl_datacenter", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "acl_default_policy", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "acl_disabled_ttl", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "acl_down_policy", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "acl_enforce_0_8_semantics", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "acl_ttl", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "advertise_addr", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "bind_addr", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "bootstrap_expect", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "bootstrap_mode", "false"), testAccCheckDataSourceValue("data.consul_agent_self.read", "client_addr", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "datacenter", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "dev_mode", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "domain", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "enable_anonymous_signature", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "enable_coordinates", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "enable_debug", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "enable_remote_exec", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "enable_syslog", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "enable_ui", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "enable_update_check", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "id", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "leave_on_int", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "leave_on_term", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "log_level", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "name", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "pid_file", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "rejoin_after_leave", ""), // testAccCheckDataSourceValue("data.consul_agent_self.read", "retry_join", ""), // testAccCheckDataSourceValue("data.consul_agent_self.read", "retry_join_wan", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "retry_max_attempts", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "retry_max_attempts_wan", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "serf_lan_bind_addr", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "serf_wan_bind_addr", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "server_mode", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "server_name", ""), // testAccCheckDataSourceValue("data.consul_agent_self.read", "start_join", ""), // testAccCheckDataSourceValue("data.consul_agent_self.read", "start_join_wan", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "syslog_facility", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "telemetry.enable_hostname", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "tls_ca_file", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "tls_cert_file", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "tls_key_file", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "tls_verify_incoming", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "tls_verify_outgoing", ""), testAccCheckDataSourceValue("data.consul_agent_self.read", "tls_verify_server_hostname", ""), ), }, }, }) } func testAccCheckDataSourceValue(n, attr, val string) resource.TestCheckFunc { return func(s *terraform.State) error { rn, ok := s.RootModule().Resources[n] if !ok { return fmt.Errorf("Resource not found") } out, found := rn.Primary.Attributes[attr] switch { case !found: return fmt.Errorf("Attribute '%s' not found: %#v", attr, rn.Primary.Attributes) case val == "": // Value found, don't care what the payload is (including the zero value) case val != "" && out != val: return fmt.Errorf("Attribute '%s' value '%s' != '%s'", attr, out, val) case val == "" && out == "": return fmt.Errorf("Attribute '%s' value '%s'", attr, out) } return nil } } const testAccDataConsulAgentSelfConfig = ` data "consul_agent_self" "read" { } `