From a8853da0632fc9825a8db50514fdf083ffbb4713 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sat, 20 Apr 2013 18:17:53 -0600 Subject: [PATCH] Test the CLI that Run is called on custom commands --- packer/environment_test.go | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/packer/environment_test.go b/packer/environment_test.go index 4e8bdc212..995e6ec38 100644 --- a/packer/environment_test.go +++ b/packer/environment_test.go @@ -7,6 +7,19 @@ import ( "testing" ) +type TestCommand struct { + runCalled bool +} + +func (tc *TestCommand) Run(env *Environment, args []string) int { + tc.runCalled = true + return 0 +} + +func (tc *TestCommand) Synopsis() string { + return "" +} + func testEnvironment() *Environment { config := &EnvironmentConfig{} config.Ui = &ReaderWriterUi{ @@ -18,10 +31,17 @@ func testEnvironment() *Environment { } func TestEnvironment_Cli_CallsRun(t *testing.T) { - //_ := asserts.NewTestingAsserts(t, true) + assert := asserts.NewTestingAsserts(t, true) - // TODO: Test that the call to `Run` is done with - // proper arguments and such. + command := &TestCommand{} + + config := &EnvironmentConfig{} + config.Command = make(map[string]Command) + config.Command["foo"] = command + + env := NewEnvironment(config) + assert.Equal(env.Cli([]string{"foo"}), 0, "runs foo command") + assert.True(command.runCalled, "run should've been called") } func TestEnvironment_DefaultCli_Empty(t *testing.T) {