package puppetserver import ( "github.com/mitchellh/packer/packer" "io/ioutil" "os" "testing" ) func testConfig() map[string]interface{} { tf, err := ioutil.TempFile("", "packer") if err != nil { panic(err) } return map[string]interface{}{ "puppet_server": tf.Name(), } } func TestProvisioner_Impl(t *testing.T) { var raw interface{} raw = &Provisioner{} if _, ok := raw.(packer.Provisioner); !ok { t.Fatalf("must be a Provisioner") } } func TestProvisionerPrepare_clientPrivateKeyPath(t *testing.T) { config := testConfig() delete(config, "client_private_key_path") p := new(Provisioner) err := p.Prepare(config) if err != nil { t.Fatalf("err: %s", err) } // Test with bad paths config["client_private_key_path"] = "i-should-not-exist" p = new(Provisioner) err = p.Prepare(config) if err == nil { t.Fatal("should be an error") } // Test with a good one td, err := ioutil.TempDir("", "packer") if err != nil { t.Fatalf("error: %s", err) } defer os.RemoveAll(td) config["client_private_key_path"] = td p = new(Provisioner) err = p.Prepare(config) if err != nil { t.Fatalf("err: %s", err) } } func TestProvisionerPrepare_clientCertPath(t *testing.T) { config := testConfig() delete(config, "client_cert_path") p := new(Provisioner) err := p.Prepare(config) if err != nil { t.Fatalf("err: %s", err) } // Test with bad paths config["client_cert_path"] = "i-should-not-exist" p = new(Provisioner) err = p.Prepare(config) if err == nil { t.Fatal("should be an error") } // Test with a good one td, err := ioutil.TempDir("", "packer") if err != nil { t.Fatalf("error: %s", err) } defer os.RemoveAll(td) config["client_cert_path"] = td p = new(Provisioner) err = p.Prepare(config) if err != nil { t.Fatalf("err: %s", err) } }