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 }