func (s *S) TestPluginLookup(c *gocheck.C) { fexec := etesting.FakeExecutor{} execut = &fexec defer func() { execut = nil }() manager := buildManager("tsuru") manager.Run([]string{"myplugin"}) pluginPath := cmd.JoinWithUserDir(".tsuru", "plugins", "myplugin") c.Assert(fexec.ExecutedCmd(pluginPath, []string{}), gocheck.Equals, true) }
func (s *S) TestOpen(c *gocheck.C) { fexec := etesting.FakeExecutor{} execut = &fexec defer func() { execut = nil }() url := "http://someurl" err := open(url) c.Assert(err, gocheck.IsNil) if runtime.GOOS == "linux" { c.Assert(fexec.ExecutedCmd("xdg-open", []string{url}), gocheck.Equals, true) } else { c.Assert(fexec.ExecutedCmd("open", []string{url}), gocheck.Equals, true) } }
func (s *S) TestPluginWithArgs(c *gocheck.C) { fexec := etesting.FakeExecutor{} execut = &fexec defer func() { execut = nil }() context := cmd.Context{ Args: []string{"myplugin", "ble", "bla"}, } client := cmd.NewClient(nil, nil, manager) command := plugin{} err := command.Run(&context, client) c.Assert(err, gocheck.IsNil) pluginPath := cmd.JoinWithUserDir(".tsuru", "plugins", "myplugin") c.Assert(fexec.ExecutedCmd(pluginPath, []string{"ble", "bla"}), gocheck.Equals, true) }
func (s *S) TestPlugin(c *gocheck.C) { fexec := etesting.FakeExecutor{ Output: map[string][][]byte{ "a b": {[]byte("hello world")}, }, } execut = &fexec defer func() { execut = nil }() var buf bytes.Buffer context := cmd.Context{ Args: []string{"myplugin", "a", "b"}, Stdout: &buf, Stderr: &buf, } client := cmd.NewClient(nil, nil, manager) command := plugin{} err := command.Run(&context, client) c.Assert(err, gocheck.IsNil) pluginPath := cmd.JoinWithUserDir(".tsuru", "plugins", "myplugin") c.Assert(fexec.ExecutedCmd(pluginPath, []string{"a", "b"}), gocheck.Equals, true) c.Assert(buf.String(), gocheck.Equals, "hello world") }