github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/state/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  	"os"
     8  
     9  	jc "github.com/juju/testing/checkers"
    10  	gc "gopkg.in/check.v1"
    11  
    12  	"github.com/juju/juju/state/backups"
    13  	backupstesting "github.com/juju/juju/state/backups/testing"
    14  )
    15  
    16  type createSuite struct {
    17  	LegacySuite
    18  }
    19  
    20  var _ = gc.Suite(&createSuite{}) // Register the suite.
    21  
    22  type TestDBDumper struct {
    23  	DumpDir string
    24  }
    25  
    26  func (d *TestDBDumper) Dump(dumpDir string) error {
    27  	d.DumpDir = dumpDir
    28  	return nil
    29  }
    30  
    31  func (s *createSuite) TestLegacy(c *gc.C) {
    32  	meta := backupstesting.NewMetadataStarted()
    33  	metadataFile, err := meta.AsJSONBuffer()
    34  	c.Assert(err, jc.ErrorIsNil)
    35  	_, testFiles, expected := s.createTestFiles(c)
    36  
    37  	dumper := &TestDBDumper{}
    38  	args := backups.NewTestCreateArgs(testFiles, dumper, metadataFile)
    39  	result, err := backups.Create(args)
    40  	c.Assert(err, jc.ErrorIsNil)
    41  	c.Assert(result, gc.NotNil)
    42  
    43  	archiveFile, size, checksum := backups.ExposeCreateResult(result)
    44  	c.Assert(archiveFile, gc.NotNil)
    45  
    46  	// Check the result.
    47  	file, ok := archiveFile.(*os.File)
    48  	c.Assert(ok, jc.IsTrue)
    49  
    50  	s.checkSize(c, file, size)
    51  	s.checkChecksum(c, file, checksum)
    52  	s.checkArchive(c, file, expected)
    53  }
    54  
    55  func (s *createSuite) TestMetadataFileMissing(c *gc.C) {
    56  	var testFiles []string
    57  	dumper := &TestDBDumper{}
    58  
    59  	args := backups.NewTestCreateArgs(testFiles, dumper, nil)
    60  	_, err := backups.Create(args)
    61  
    62  	c.Check(err, gc.ErrorMatches, "missing metadataReader")
    63  }