package openwrt import ( "log" "strings" "testing" ) var retCode int var retStdout string var retStderr string type UCI struct { exec Executor } func (u *UCI) Run(command string, args []string) (stdout string, stderr string, exit int, err error) { return u.exec.Run(command, args) } func NewUCI(exec Executor) *UCI { return &UCI{exec} } type Executor interface { Run(command string, args []string) (stdout string, stderr string, exit int, err error) } type fakeExecutor struct{} func (e *fakeExecutor) Run(command string, args []string) (stdout string, stderr string, exit int, err error) { log.Printf("executing '%s %s'", command, strings.Join(args, " ")) return "", "", 0, nil } func TestUciAdd(t *testing.T) { retCode = 0 retStdout = "OK" retStderr = "" // Return 0 run ! res := UciAdd("wireless", "test") if res.returnCode != 0 { t.Error(res.errors) } }