github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/api/backups/create_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  	jc "github.com/juju/testing/checkers"
     8  	gc "gopkg.in/check.v1"
     9  
    10  	"github.com/juju/juju/api/backups"
    11  	apiserverbackups "github.com/juju/juju/apiserver/facades/client/backups"
    12  	"github.com/juju/juju/apiserver/params"
    13  	backupstesting "github.com/juju/juju/state/backups/testing"
    14  )
    15  
    16  type createSuite struct {
    17  	baseSuite
    18  }
    19  
    20  var _ = gc.Suite(&createSuite{})
    21  
    22  func (s *createSuite) TestCreate(c *gc.C) {
    23  	cleanup := backups.PatchClientFacadeCall(s.client,
    24  		func(req string, paramsIn interface{}, resp interface{}) error {
    25  			c.Check(req, gc.Equals, "Create")
    26  
    27  			c.Assert(paramsIn, gc.FitsTypeOf, params.BackupsCreateArgs{})
    28  			p := paramsIn.(params.BackupsCreateArgs)
    29  			c.Check(p.Notes, gc.Equals, "important")
    30  			c.Check(p.KeepCopy, jc.IsFalse)
    31  			c.Check(p.NoDownload, jc.IsFalse)
    32  
    33  			if result, ok := resp.(*params.BackupsMetadataResult); ok {
    34  				*result = apiserverbackups.CreateResult(s.Meta, "test-filename")
    35  				result.Notes = p.Notes
    36  			} else {
    37  				c.Fatalf("wrong output structure")
    38  			}
    39  			return nil
    40  		},
    41  	)
    42  	defer cleanup()
    43  
    44  	result, err := s.client.Create("important", false, false)
    45  	c.Assert(err, jc.ErrorIsNil)
    46  	c.Log(result)
    47  	meta := backupstesting.UpdateNotes(s.Meta, "important")
    48  	s.checkMetadataResult(c, result, meta)
    49  }