github.com/jerryclinesmith/packer@v0.3.7/provisioner/puppet-masterless/provisioner_test.go (about) 1 package puppetmasterless 2 3 import ( 4 "github.com/mitchellh/packer/packer" 5 "io/ioutil" 6 "os" 7 "testing" 8 ) 9 10 func testConfig() map[string]interface{} { 11 tf, err := ioutil.TempFile("", "packer") 12 if err != nil { 13 panic(err) 14 } 15 16 return map[string]interface{}{ 17 "manifest_file": tf.Name(), 18 } 19 } 20 21 func TestProvisioner_Impl(t *testing.T) { 22 var raw interface{} 23 raw = &Provisioner{} 24 if _, ok := raw.(packer.Provisioner); !ok { 25 t.Fatalf("must be a Provisioner") 26 } 27 } 28 29 func TestProvisionerPrepare_hieraConfigPath(t *testing.T) { 30 config := testConfig() 31 32 delete(config, "hiera_config_path") 33 p := new(Provisioner) 34 err := p.Prepare(config) 35 if err != nil { 36 t.Fatalf("err: %s", err) 37 } 38 39 // Test with a good one 40 tf, err := ioutil.TempFile("", "packer") 41 if err != nil { 42 t.Fatalf("error tempfile: %s", err) 43 } 44 defer os.Remove(tf.Name()) 45 46 config["hiera_config_path"] = tf.Name() 47 p = new(Provisioner) 48 err = p.Prepare(config) 49 if err != nil { 50 t.Fatalf("err: %s", err) 51 } 52 } 53 54 func TestProvisionerPrepare_manifestFile(t *testing.T) { 55 config := testConfig() 56 57 delete(config, "manifest_file") 58 p := new(Provisioner) 59 err := p.Prepare(config) 60 if err == nil { 61 t.Fatal("should be an error") 62 } 63 64 // Test with a good one 65 tf, err := ioutil.TempFile("", "packer") 66 if err != nil { 67 t.Fatalf("error tempfile: %s", err) 68 } 69 defer os.Remove(tf.Name()) 70 71 config["manifest_file"] = tf.Name() 72 p = new(Provisioner) 73 err = p.Prepare(config) 74 if err != nil { 75 t.Fatalf("err: %s", err) 76 } 77 } 78 79 func TestProvisionerPrepare_modulePaths(t *testing.T) { 80 config := testConfig() 81 82 delete(config, "module_paths") 83 p := new(Provisioner) 84 err := p.Prepare(config) 85 if err != nil { 86 t.Fatalf("err: %s", err) 87 } 88 89 // Test with bad paths 90 config["module_paths"] = []string{"i-should-not-exist"} 91 p = new(Provisioner) 92 err = p.Prepare(config) 93 if err == nil { 94 t.Fatal("should be an error") 95 } 96 97 // Test with a good one 98 td, err := ioutil.TempDir("", "packer") 99 if err != nil { 100 t.Fatalf("error: %s", err) 101 } 102 defer os.RemoveAll(td) 103 104 config["module_paths"] = []string{td} 105 p = new(Provisioner) 106 err = p.Prepare(config) 107 if err != nil { 108 t.Fatalf("err: %s", err) 109 } 110 }