38 lines
735 B
Go
38 lines
735 B
Go
package command
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/mitchellh/cli"
|
|
)
|
|
|
|
func TestLockCommand_implements(t *testing.T) {
|
|
var _ cli.Command = &LockCommand{}
|
|
}
|
|
|
|
func TestLockCommandRun(t *testing.T) {
|
|
a1 := testAgent(t)
|
|
defer a1.Shutdown()
|
|
waitForLeader(t, a1.httpAddr)
|
|
|
|
ui := new(cli.MockUi)
|
|
c := &LockCommand{Ui: ui}
|
|
filePath := filepath.Join(a1.dir, "test_touch")
|
|
touchCmd := fmt.Sprintf("touch '%s'", filePath)
|
|
args := []string{"-http-addr=" + a1.httpAddr, "test/prefix", touchCmd}
|
|
|
|
code := c.Run(args)
|
|
if code != 0 {
|
|
t.Fatalf("bad: %d. %#v", code, ui.ErrorWriter.String())
|
|
}
|
|
|
|
// Check for the file
|
|
_, err := ioutil.ReadFile(filePath)
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
}
|