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 }