61 lines
901 B
Go
61 lines
901 B
Go
package cli
|
|
|
|
import (
|
|
"bytes"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestRunNoArgs(t *testing.T) {
|
|
oldStdout := os.Stdout
|
|
_, w, _ := os.Pipe()
|
|
os.Stdout = w
|
|
|
|
err := Run([]string{})
|
|
|
|
w.Close()
|
|
os.Stdout = oldStdout
|
|
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
}
|
|
|
|
func TestRunHelp(t *testing.T) {
|
|
oldStdout := os.Stdout
|
|
_, w, _ := os.Pipe()
|
|
os.Stdout = w
|
|
|
|
err := Run([]string{"help"})
|
|
|
|
w.Close()
|
|
os.Stdout = oldStdout
|
|
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
}
|
|
|
|
func TestRunUnknownCommand(t *testing.T) {
|
|
err := Run([]string{"unknown"})
|
|
if err == nil {
|
|
t.Fatal("expected error for unknown command")
|
|
}
|
|
}
|
|
|
|
func TestRunOutput(t *testing.T) {
|
|
oldStdout := os.Stdout
|
|
r, w, _ := os.Pipe()
|
|
os.Stdout = w
|
|
|
|
_ = Run([]string{})
|
|
|
|
w.Close()
|
|
os.Stdout = oldStdout
|
|
|
|
buf := new(bytes.Buffer)
|
|
_, _ = buf.ReadFrom(r)
|
|
if buf.Len() == 0 {
|
|
t.Fatal("expected output")
|
|
}
|
|
}
|