github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/cmd/juju/backups/download_test.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package backups_test
     5  
     6  import (
     7  	"github.com/juju/cmd"
     8  	"github.com/juju/cmd/cmdtesting"
     9  	"github.com/juju/errors"
    10  	jc "github.com/juju/testing/checkers"
    11  	gc "gopkg.in/check.v1"
    12  
    13  	"github.com/juju/juju/cmd/juju/backups"
    14  	"github.com/juju/juju/jujuclient/jujuclienttesting"
    15  )
    16  
    17  type downloadSuite struct {
    18  	BaseBackupsSuite
    19  	wrappedCommand cmd.Command
    20  	command        *backups.DownloadCommand
    21  }
    22  
    23  var _ = gc.Suite(&downloadSuite{})
    24  
    25  func (s *downloadSuite) SetUpTest(c *gc.C) {
    26  	s.BaseBackupsSuite.SetUpTest(c)
    27  	s.wrappedCommand, s.command = backups.NewDownloadCommandForTest(jujuclienttesting.MinimalStore())
    28  }
    29  
    30  func (s *downloadSuite) TearDownTest(c *gc.C) {
    31  	filename := s.command.ResolveFilename()
    32  	if s.command.Filename == "" {
    33  		filename = s.filename
    34  	}
    35  
    36  	if s.filename == "" {
    37  		s.filename = filename
    38  	} else {
    39  		c.Check(filename, gc.Equals, s.filename)
    40  	}
    41  
    42  	s.BaseBackupsSuite.TearDownTest(c)
    43  }
    44  
    45  func (s *downloadSuite) setSuccess() *fakeAPIClient {
    46  	client := s.BaseBackupsSuite.setDownload()
    47  	return client
    48  }
    49  
    50  func (s *downloadSuite) TestOkay(c *gc.C) {
    51  	s.setSuccess()
    52  	ctx, err := cmdtesting.RunCommand(c, s.wrappedCommand, s.metaresult.ID)
    53  	c.Check(err, jc.ErrorIsNil)
    54  
    55  	s.filename = "juju-backup-" + s.metaresult.ID + ".tar.gz"
    56  	s.checkStd(c, ctx, s.filename+"\n", "")
    57  	s.checkArchive(c)
    58  }
    59  
    60  func (s *downloadSuite) TestFilename(c *gc.C) {
    61  	s.setSuccess()
    62  	ctx, err := cmdtesting.RunCommand(c, s.wrappedCommand, s.metaresult.ID, "--filename", "backup.tar.gz")
    63  	c.Check(err, jc.ErrorIsNil)
    64  
    65  	s.filename = "backup.tar.gz"
    66  	s.checkStd(c, ctx, s.filename+"\n", "")
    67  	s.checkArchive(c)
    68  }
    69  
    70  func (s *downloadSuite) TestError(c *gc.C) {
    71  	s.setFailure("failed!")
    72  	_, err := cmdtesting.RunCommand(c, s.wrappedCommand, s.metaresult.ID)
    73  	c.Check(errors.Cause(err), gc.ErrorMatches, "failed!")
    74  }