github.com/cloudbase/juju-core@v0.0.0-20140504232958-a7271ac7912f/cmd/juju/helptool_test.go (about)

     1  // Copyright 2013 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package main
     5  
     6  import (
     7  	"strings"
     8  
     9  	gc "launchpad.net/gocheck"
    10  
    11  	"launchpad.net/juju-core/testing"
    12  	"launchpad.net/juju-core/worker/uniter/jujuc"
    13  )
    14  
    15  type HelpToolSuite struct {
    16  	home *testing.FakeHome
    17  }
    18  
    19  var _ = gc.Suite(&HelpToolSuite{})
    20  
    21  func (suite *HelpToolSuite) SetUpTest(c *gc.C) {
    22  	suite.home = testing.MakeSampleHome(c)
    23  }
    24  
    25  func (suite *HelpToolSuite) TearDownTest(c *gc.C) {
    26  	suite.home.Restore()
    27  }
    28  
    29  func (suite *HelpToolSuite) TestHelpToolHelp(c *gc.C) {
    30  	output := badrun(c, 0, "help", "help-tool")
    31  	c.Assert(output, gc.Equals, `usage: juju help-tool [tool]
    32  purpose: show help on a juju charm tool
    33  `)
    34  }
    35  
    36  func (suite *HelpToolSuite) TestHelpTool(c *gc.C) {
    37  	expectedNames := jujuc.CommandNames()
    38  	output := badrun(c, 0, "help-tool")
    39  	lines := strings.Split(strings.TrimSpace(output), "\n")
    40  	for i, line := range lines {
    41  		lines[i] = strings.Fields(line)[0]
    42  	}
    43  	c.Assert(lines, gc.DeepEquals, expectedNames)
    44  }
    45  
    46  func (suite *HelpToolSuite) TestHelpToolName(c *gc.C) {
    47  	output := badrun(c, 0, "help-tool", "relation-get")
    48  	expectedHelp := `usage: relation-get \[options\] <key> <unit id>
    49  purpose: get relation settings
    50  
    51  options:
    52  (.|\n)*
    53  relation-get prints the value(.|\n)*`
    54  	c.Assert(output, gc.Matches, expectedHelp)
    55  }