github.com/supr/packer@v0.3.10-0.20131015195147-7b09e24ac3c1/command/build/command_test.go (about) 1 package build 2 3 import ( 4 "bytes" 5 "cgl.tideland.biz/asserts" 6 "github.com/mitchellh/packer/packer" 7 "testing" 8 ) 9 10 func testEnvironment() packer.Environment { 11 config := packer.DefaultEnvironmentConfig() 12 config.Ui = &packer.BasicUi{ 13 Reader: new(bytes.Buffer), 14 Writer: new(bytes.Buffer), 15 } 16 17 env, err := packer.NewEnvironment(config) 18 if err != nil { 19 panic(err) 20 } 21 22 return env 23 } 24 25 func TestCommand_Implements(t *testing.T) { 26 assert := asserts.NewTestingAsserts(t, true) 27 28 var actual packer.Command 29 assert.Implementor(new(Command), &actual, "should be a Command") 30 } 31 32 func TestCommand_Run_NoArgs(t *testing.T) { 33 assert := asserts.NewTestingAsserts(t, true) 34 command := new(Command) 35 result := command.Run(testEnvironment(), make([]string, 0)) 36 assert.Equal(result, 1, "no args should error") 37 } 38 39 func TestCommand_Run_MoreThanOneArg(t *testing.T) { 40 assert := asserts.NewTestingAsserts(t, true) 41 command := new(Command) 42 43 args := []string{"one", "two"} 44 result := command.Run(testEnvironment(), args) 45 assert.Equal(result, 1, "More than one arg should fail") 46 } 47 48 func TestCommand_Run_MissingFile(t *testing.T) { 49 assert := asserts.NewTestingAsserts(t, true) 50 command := new(Command) 51 52 args := []string{"i-better-not-exist"} 53 result := command.Run(testEnvironment(), args) 54 assert.Equal(result, 1, "a non-existent file should error") 55 }