github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/state/backups/db_info_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 "github.com/juju/names" 8 jc "github.com/juju/testing/checkers" 9 gc "gopkg.in/check.v1" 10 11 "github.com/juju/juju/mongo" 12 "github.com/juju/juju/state/backups" 13 "github.com/juju/juju/testing" 14 ) 15 16 var _ = gc.Suite(&dbInfoSuite{}) 17 18 type dbInfoSuite struct { 19 testing.BaseSuite 20 } 21 22 type fakeSession struct { 23 dbNames []string 24 } 25 26 func (f *fakeSession) DatabaseNames() ([]string, error) { 27 return f.dbNames, nil 28 } 29 30 func (s *dbInfoSuite) TestNewDBInfoOkay(c *gc.C) { 31 session := fakeSession{} 32 33 tag, err := names.ParseTag("machine-0") 34 c.Assert(err, jc.ErrorIsNil) 35 mgoInfo := &mongo.MongoInfo{ 36 Info: mongo.Info{ 37 Addrs: []string{"localhost:8080"}, 38 }, 39 Tag: tag, 40 Password: "eggs", 41 } 42 dbInfo, err := backups.NewDBInfo(mgoInfo, &session) 43 c.Assert(err, jc.ErrorIsNil) 44 45 c.Check(dbInfo.Address, gc.Equals, "localhost:8080") 46 c.Check(dbInfo.Username, gc.Equals, "machine-0") 47 c.Check(dbInfo.Password, gc.Equals, "eggs") 48 } 49 50 func (s *dbInfoSuite) TestNewDBInfoMissingTag(c *gc.C) { 51 session := fakeSession{} 52 53 mgoInfo := &mongo.MongoInfo{ 54 Info: mongo.Info{ 55 Addrs: []string{"localhost:8080"}, 56 }, 57 Password: "eggs", 58 } 59 dbInfo, err := backups.NewDBInfo(mgoInfo, &session) 60 c.Assert(err, jc.ErrorIsNil) 61 62 c.Check(dbInfo.Username, gc.Equals, "") 63 c.Check(dbInfo.Address, gc.Equals, "localhost:8080") 64 c.Check(dbInfo.Password, gc.Equals, "eggs") 65 }