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  }