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 }