example_function_test.notgo 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. // Copyright (c) HashiCorp, Inc.
  2. // SPDX-License-Identifier: MPL-2.0
  3. package provider
  4. import (
  5. "regexp"
  6. "testing"
  7. "github.com/hashicorp/terraform-plugin-testing/helper/resource"
  8. "github.com/hashicorp/terraform-plugin-testing/tfversion"
  9. )
  10. func TestExampleFunction_Known(t *testing.T) {
  11. resource.UnitTest(t, resource.TestCase{
  12. TerraformVersionChecks: []tfversion.TerraformVersionCheck{
  13. tfversion.SkipBelow(tfversion.Version1_8_0),
  14. },
  15. ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
  16. Steps: []resource.TestStep{
  17. {
  18. Config: `
  19. output "test" {
  20. value = provider::scaffolding::example("testvalue")
  21. }
  22. `,
  23. Check: resource.ComposeAggregateTestCheckFunc(
  24. resource.TestCheckOutput("test", "testvalue"),
  25. ),
  26. },
  27. },
  28. })
  29. }
  30. func TestExampleFunction_Null(t *testing.T) {
  31. resource.UnitTest(t, resource.TestCase{
  32. TerraformVersionChecks: []tfversion.TerraformVersionCheck{
  33. tfversion.SkipBelow(tfversion.Version1_8_0),
  34. },
  35. ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
  36. Steps: []resource.TestStep{
  37. {
  38. Config: `
  39. output "test" {
  40. value = provider::scaffolding::example(null)
  41. }
  42. `,
  43. // The parameter does not enable AllowNullValue
  44. ExpectError: regexp.MustCompile(`argument must not be null`),
  45. },
  46. },
  47. })
  48. }
  49. func TestExampleFunction_Unknown(t *testing.T) {
  50. resource.UnitTest(t, resource.TestCase{
  51. TerraformVersionChecks: []tfversion.TerraformVersionCheck{
  52. tfversion.SkipBelow(tfversion.Version1_8_0),
  53. },
  54. ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,
  55. Steps: []resource.TestStep{
  56. {
  57. Config: `
  58. resource "terraform_data" "test" {
  59. input = "testvalue"
  60. }
  61. output "test" {
  62. value = provider::scaffolding::example(terraform_data.test.output)
  63. }
  64. `,
  65. Check: resource.ComposeAggregateTestCheckFunc(
  66. resource.TestCheckOutput("test", "testvalue"),
  67. ),
  68. },
  69. },
  70. })
  71. }