github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/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/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  
    31  			if result, ok := resp.(*params.BackupsMetadataResult); ok {
    32  				*result = apiserverbackups.ResultFromMetadata(s.Meta)
    33  				result.Notes = p.Notes
    34  			} else {
    35  				c.Fatalf("wrong output structure")
    36  			}
    37  			return nil
    38  		},
    39  	)
    40  	defer cleanup()
    41  
    42  	result, err := s.client.Create("important")
    43  	c.Assert(err, jc.ErrorIsNil)
    44  
    45  	meta := backupstesting.UpdateNotes(s.Meta, "important")
    46  	s.checkMetadataResult(c, result, meta)
    47  }