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