github.com/mwhudson/juju@v0.0.0-20160512215208-90ff01f3497f/storage/provider/package_test.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package provider_test 5 6 import ( 7 stdtesting "testing" 8 9 gc "gopkg.in/check.v1" 10 ) 11 12 func TestPackage(t *stdtesting.T) { 13 gc.TestingT(t) 14 } 15 16 type mockRunCommand struct { 17 c *gc.C 18 commands []*mockCommand 19 } 20 21 type mockCommand struct { 22 cmd string 23 args []string 24 result string 25 err error 26 } 27 28 func (m *mockCommand) respond(result string, err error) { 29 m.result = result 30 m.err = err 31 } 32 33 func (m *mockRunCommand) expect(cmd string, args ...string) *mockCommand { 34 command := &mockCommand{cmd: cmd, args: args} 35 m.commands = append(m.commands, command) 36 return command 37 } 38 39 func (m *mockRunCommand) assertDrained() { 40 m.c.Assert(m.commands, gc.HasLen, 0) 41 } 42 43 func (m *mockRunCommand) run(cmd string, args ...string) (stdout string, err error) { 44 m.c.Assert(m.commands, gc.Not(gc.HasLen), 0) 45 expect := m.commands[0] 46 m.commands = m.commands[1:] 47 m.c.Assert(cmd, gc.Equals, expect.cmd) 48 m.c.Assert(args, gc.DeepEquals, expect.args) 49 return expect.result, expect.err 50 }