github.com/cloudbase/juju-core@v0.0.0-20140504232958-a7271ac7912f/cmd/version_test.go (about) 1 // Copyright 2012, 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package cmd 5 6 import ( 7 "bytes" 8 "fmt" 9 10 gc "launchpad.net/gocheck" 11 12 "launchpad.net/juju-core/version" 13 ) 14 15 type VersionSuite struct{} 16 17 var _ = gc.Suite(&VersionSuite{}) 18 19 func (s *VersionSuite) TestVersion(c *gc.C) { 20 var stdout, stderr bytes.Buffer 21 ctx := &Context{ 22 Stdout: &stdout, 23 Stderr: &stderr, 24 } 25 code := Main(&VersionCommand{}, ctx, nil) 26 c.Check(code, gc.Equals, 0) 27 c.Assert(stderr.String(), gc.Equals, "") 28 c.Assert(stdout.String(), gc.Equals, version.Current.String()+"\n") 29 } 30 31 func (s *VersionSuite) TestVersionExtraArgs(c *gc.C) { 32 var stdout, stderr bytes.Buffer 33 ctx := &Context{ 34 Stdout: &stdout, 35 Stderr: &stderr, 36 } 37 code := Main(&VersionCommand{}, ctx, []string{"foo"}) 38 c.Check(code, gc.Equals, 2) 39 c.Assert(stdout.String(), gc.Equals, "") 40 c.Assert(stderr.String(), gc.Matches, "error: unrecognized args.*\n") 41 } 42 43 func (s *VersionSuite) TestVersionJson(c *gc.C) { 44 var stdout, stderr bytes.Buffer 45 ctx := &Context{ 46 Stdout: &stdout, 47 Stderr: &stderr, 48 } 49 code := Main(&VersionCommand{}, ctx, []string{"--format", "json"}) 50 c.Check(code, gc.Equals, 0) 51 c.Assert(stderr.String(), gc.Equals, "") 52 c.Assert(stdout.String(), gc.Equals, fmt.Sprintf("%q\n", version.Current.String())) 53 }