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 }