github.com/rstandt/terraform@v0.12.32-0.20230710220336-b1063613405c/builtin/provisioners/puppet/resource_provisioner_test.go (about)

     1  package puppet
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/hashicorp/terraform/helper/schema"
     7  	"github.com/hashicorp/terraform/terraform"
     8  )
     9  
    10  func TestResourceProvisioner_impl(t *testing.T) {
    11  	var _ terraform.ResourceProvisioner = Provisioner()
    12  }
    13  
    14  func TestProvisioner(t *testing.T) {
    15  	if err := Provisioner().(*schema.Provisioner).InternalValidate(); err != nil {
    16  		t.Fatalf("err: %s", err)
    17  	}
    18  }
    19  
    20  func TestProvisioner_Validate_good_server(t *testing.T) {
    21  	c := testConfig(t, map[string]interface{}{
    22  		"server": "puppet.test.com",
    23  	})
    24  
    25  	warn, errs := Provisioner().Validate(c)
    26  	if len(warn) > 0 {
    27  		t.Fatalf("Warnings: %v", warn)
    28  	}
    29  	if len(errs) > 0 {
    30  		t.Fatalf("Errors: %v", errs)
    31  	}
    32  }
    33  
    34  func TestProvisioner_Validate_bad_no_server(t *testing.T) {
    35  	c := testConfig(t, map[string]interface{}{})
    36  
    37  	warn, errs := Provisioner().Validate(c)
    38  	if len(warn) > 0 {
    39  		t.Fatalf("Warnings: %v", warn)
    40  	}
    41  	if len(errs) == 0 {
    42  		t.Fatalf("Should have errors")
    43  	}
    44  }
    45  
    46  func TestProvisioner_Validate_bad_os_type(t *testing.T) {
    47  	c := testConfig(t, map[string]interface{}{
    48  		"server":  "puppet.test.com",
    49  		"os_type": "OS/2",
    50  	})
    51  
    52  	warn, errs := Provisioner().Validate(c)
    53  	if len(warn) > 0 {
    54  		t.Fatalf("Warnings: %v", warn)
    55  	}
    56  	if len(errs) == 0 {
    57  		t.Fatalf("Should have errors")
    58  	}
    59  }
    60  
    61  func TestProvisioner_Validate_good_os_type_linux(t *testing.T) {
    62  	c := testConfig(t, map[string]interface{}{
    63  		"server":  "puppet.test.com",
    64  		"os_type": "linux",
    65  	})
    66  
    67  	warn, errs := Provisioner().Validate(c)
    68  	if len(warn) > 0 {
    69  		t.Fatalf("Warnings: %v", warn)
    70  	}
    71  	if len(errs) > 0 {
    72  		t.Fatalf("Errors: %v", errs)
    73  	}
    74  }
    75  
    76  func TestProvisioner_Validate_good_os_type_windows(t *testing.T) {
    77  	c := testConfig(t, map[string]interface{}{
    78  		"server":  "puppet.test.com",
    79  		"os_type": "windows",
    80  	})
    81  
    82  	warn, errs := Provisioner().Validate(c)
    83  	if len(warn) > 0 {
    84  		t.Fatalf("Warnings: %v", warn)
    85  	}
    86  	if len(errs) > 0 {
    87  		t.Fatalf("Errors: %v", errs)
    88  	}
    89  }
    90  
    91  func TestProvisioner_Validate_bad_bolt_timeout(t *testing.T) {
    92  	c := testConfig(t, map[string]interface{}{
    93  		"server":       "puppet.test.com",
    94  		"bolt_timeout": "123oeau",
    95  	})
    96  
    97  	warn, errs := Provisioner().Validate(c)
    98  	if len(warn) > 0 {
    99  		t.Fatalf("Warnings: %v", warn)
   100  	}
   101  	if len(errs) == 0 {
   102  		t.Fatalf("Should have errors")
   103  	}
   104  }
   105  
   106  func TestProvisioner_Validate_good_bolt_timeout(t *testing.T) {
   107  	c := testConfig(t, map[string]interface{}{
   108  		"server":       "puppet.test.com",
   109  		"bolt_timeout": "123m",
   110  	})
   111  
   112  	warn, errs := Provisioner().Validate(c)
   113  	if len(warn) > 0 {
   114  		t.Fatalf("Warnings: %v", warn)
   115  	}
   116  	if len(errs) > 0 {
   117  		t.Fatalf("Errors: %v", warn)
   118  	}
   119  }
   120  
   121  func testConfig(t *testing.T, c map[string]interface{}) *terraform.ResourceConfig {
   122  	return terraform.NewResourceConfigRaw(c)
   123  }