151 lines
3.6 KiB
Go
151 lines
3.6 KiB
Go
|
package atlas
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/hashicorp/terraform/helper/resource"
|
||
|
"github.com/hashicorp/terraform/terraform"
|
||
|
)
|
||
|
|
||
|
func TestAccDataSourceArtifact_basic(t *testing.T) {
|
||
|
resource.Test(t, resource.TestCase{
|
||
|
PreCheck: func() { testAccPreCheck(t) },
|
||
|
Providers: testAccProviders,
|
||
|
Steps: []resource.TestStep{
|
||
|
resource.TestStep{
|
||
|
Config: testAccDataArtifact_basic,
|
||
|
Check: resource.ComposeTestCheckFunc(
|
||
|
testAccCheckDataArtifactState("name", "hashicorp/tf-provider-test"),
|
||
|
),
|
||
|
},
|
||
|
},
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func TestAccDataSourceArtifact_metadata(t *testing.T) {
|
||
|
resource.Test(t, resource.TestCase{
|
||
|
PreCheck: func() { testAccPreCheck(t) },
|
||
|
Providers: testAccProviders,
|
||
|
Steps: []resource.TestStep{
|
||
|
resource.TestStep{
|
||
|
Config: testAccDataArtifact_metadata,
|
||
|
Check: resource.ComposeTestCheckFunc(
|
||
|
testAccCheckDataArtifactState("name", "hashicorp/tf-provider-test"),
|
||
|
testAccCheckDataArtifactState("id", "x86"),
|
||
|
testAccCheckDataArtifactState("metadata_full.arch", "x86"),
|
||
|
),
|
||
|
},
|
||
|
},
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func TestAccDataSourceArtifact_metadataSet(t *testing.T) {
|
||
|
resource.Test(t, resource.TestCase{
|
||
|
PreCheck: func() { testAccPreCheck(t) },
|
||
|
Providers: testAccProviders,
|
||
|
Steps: []resource.TestStep{
|
||
|
resource.TestStep{
|
||
|
Config: testAccDataArtifact_metadataSet,
|
||
|
Check: resource.ComposeTestCheckFunc(
|
||
|
testAccCheckDataArtifactState("name", "hashicorp/tf-provider-test"),
|
||
|
testAccCheckDataArtifactState("id", "x64"),
|
||
|
testAccCheckDataArtifactState("metadata_full.arch", "x64"),
|
||
|
),
|
||
|
},
|
||
|
},
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func TestAccDataSourceArtifact_buildLatest(t *testing.T) {
|
||
|
resource.Test(t, resource.TestCase{
|
||
|
PreCheck: func() { testAccPreCheck(t) },
|
||
|
Providers: testAccProviders,
|
||
|
Steps: []resource.TestStep{
|
||
|
resource.TestStep{
|
||
|
Config: testAccDataArtifact_buildLatest,
|
||
|
Check: resource.ComposeTestCheckFunc(
|
||
|
testAccCheckDataArtifactState("name", "hashicorp/tf-provider-test"),
|
||
|
),
|
||
|
},
|
||
|
},
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func TestAccDataSourceArtifact_versionAny(t *testing.T) {
|
||
|
resource.Test(t, resource.TestCase{
|
||
|
PreCheck: func() { testAccPreCheck(t) },
|
||
|
Providers: testAccProviders,
|
||
|
Steps: []resource.TestStep{
|
||
|
resource.TestStep{
|
||
|
Config: testAccDataArtifact_versionAny,
|
||
|
Check: resource.ComposeTestCheckFunc(
|
||
|
testAccCheckDataArtifactState("name", "hashicorp/tf-provider-test"),
|
||
|
),
|
||
|
},
|
||
|
},
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func testAccCheckDataArtifactState(key, value string) resource.TestCheckFunc {
|
||
|
return func(s *terraform.State) error {
|
||
|
rs, ok := s.RootModule().Resources["data.atlas_artifact.foobar"]
|
||
|
if !ok {
|
||
|
return fmt.Errorf("Not found: %s", "data.atlas_artifact.foobar")
|
||
|
}
|
||
|
|
||
|
if rs.Primary.ID == "" {
|
||
|
return fmt.Errorf("No ID is set")
|
||
|
}
|
||
|
|
||
|
p := rs.Primary
|
||
|
if p.Attributes[key] != value {
|
||
|
return fmt.Errorf(
|
||
|
"%s != %s (actual: %s)", key, value, p.Attributes[key])
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const testAccDataArtifact_basic = `
|
||
|
data "atlas_artifact" "foobar" {
|
||
|
name = "hashicorp/tf-provider-test"
|
||
|
type = "foo"
|
||
|
}`
|
||
|
|
||
|
const testAccDataArtifact_metadata = `
|
||
|
data "atlas_artifact" "foobar" {
|
||
|
name = "hashicorp/tf-provider-test"
|
||
|
type = "foo"
|
||
|
metadata {
|
||
|
arch = "x86"
|
||
|
}
|
||
|
version = "any"
|
||
|
}`
|
||
|
|
||
|
const testAccDataArtifact_metadataSet = `
|
||
|
data "atlas_artifact" "foobar" {
|
||
|
name = "hashicorp/tf-provider-test"
|
||
|
type = "foo"
|
||
|
metadata_keys = ["arch"]
|
||
|
version = "any"
|
||
|
}`
|
||
|
|
||
|
const testAccDataArtifact_buildLatest = `
|
||
|
data "atlas_artifact" "foobar" {
|
||
|
name = "hashicorp/tf-provider-test"
|
||
|
type = "foo"
|
||
|
build = "latest"
|
||
|
metadata {
|
||
|
arch = "x86"
|
||
|
}
|
||
|
}`
|
||
|
|
||
|
const testAccDataArtifact_versionAny = `
|
||
|
data "atlas_artifact" "foobar" {
|
||
|
name = "hashicorp/tf-provider-test"
|
||
|
type = "foo"
|
||
|
version = "any"
|
||
|
}`
|