github.com/mattyw/juju@v0.0.0-20140610034352-732aecd63861/worker/peergrouper/initiate_test.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package peergrouper_test
     5  
     6  import (
     7  	gc "launchpad.net/gocheck"
     8  
     9  	coretesting "github.com/juju/juju/testing"
    10  	"github.com/juju/juju/worker/peergrouper"
    11  )
    12  
    13  type InitiateSuite struct {
    14  	coretesting.BaseSuite
    15  }
    16  
    17  var _ = gc.Suite(&InitiateSuite{})
    18  
    19  // TODO(natefinch) add a test that InitiateMongoServer works when
    20  // we support upgrading of existing environments.
    21  
    22  func (s *InitiateSuite) TestInitiateReplicaSet(c *gc.C) {
    23  	var err error
    24  	inst := &coretesting.MgoInstance{Params: []string{"--replSet", "juju"}}
    25  	err = inst.Start(true)
    26  	c.Assert(err, gc.IsNil)
    27  	defer inst.Destroy()
    28  
    29  	info := inst.DialInfo()
    30  	args := peergrouper.InitiateMongoParams{
    31  		DialInfo:       info,
    32  		MemberHostPort: inst.Addr(),
    33  	}
    34  
    35  	err = peergrouper.MaybeInitiateMongoServer(args)
    36  	c.Assert(err, gc.IsNil)
    37  
    38  	// This would return a mgo.QueryError if a ReplicaSet
    39  	// configuration already existed but we tried to create
    40  	// one with replicaset.Initiate again.
    41  	err = peergrouper.MaybeInitiateMongoServer(args)
    42  	c.Assert(err, gc.IsNil)
    43  
    44  	// TODO test login
    45  }