@ -1,6 +1,8 @@
package chef
import (
"fmt"
"path"
"testing"
"github.com/hashicorp/terraform/communicator"
@ -58,6 +60,7 @@ func testConfig(t *testing.T, c map[string]interface{}) *terraform.ResourceConfi
func TestResourceProvider_runChefClient ( t * testing . T ) {
cases := map [ string ] struct {
Config * terraform . ResourceConfig
ChefCmd string
ConfDir string
Commands map [ string ] bool
} {
@ -70,10 +73,14 @@ func TestResourceProvider_runChefClient(t *testing.T) {
"validation_key_path" : "test-fixtures/validator.pem" ,
} ) ,
ChefCmd : linuxChefCmd ,
ConfDir : linuxConfDir ,
Commands : map [ string ] bool {
` sudo chef-client -j "/etc/chef/first-boot.json" -E "_default" ` : true ,
fmt . Sprintf ( ` sudo %s -j %q -E "_default" ` ,
linuxChefCmd ,
path . Join ( linuxConfDir , "first-boot.json" ) ) : true ,
} ,
} ,
@ -87,10 +94,14 @@ func TestResourceProvider_runChefClient(t *testing.T) {
"validation_key_path" : "test-fixtures/validator.pem" ,
} ) ,
ChefCmd : linuxChefCmd ,
ConfDir : linuxConfDir ,
Commands : map [ string ] bool {
` chef-client -j "/etc/chef/first-boot.json" -E "_default" ` : true ,
fmt . Sprintf ( ` %s -j %q -E "_default" ` ,
linuxChefCmd ,
path . Join ( linuxConfDir , "first-boot.json" ) ) : true ,
} ,
} ,
@ -105,10 +116,14 @@ func TestResourceProvider_runChefClient(t *testing.T) {
"validation_key_path" : "test-fixtures/validator.pem" ,
} ) ,
ChefCmd : windowsChefCmd ,
ConfDir : windowsConfDir ,
Commands : map [ string ] bool {
` chef-client -j "C:/chef/first-boot.json" -E "production" ` : true ,
fmt . Sprintf ( ` %s -j %q -E "production" ` ,
windowsChefCmd ,
path . Join ( windowsConfDir , "first-boot.json" ) ) : true ,
} ,
} ,
}
@ -125,7 +140,7 @@ func TestResourceProvider_runChefClient(t *testing.T) {
t . Fatalf ( "Error: %v" , err )
}
p . runChefClient = p . runChefClientFunc ( tc . C onfDir)
p . runChefClient = p . runChefClientFunc ( tc . C hefCmd, tc . C onfDir)
p . useSudo = ! p . PreventSudo
err = p . runChefClient ( o , c )