github.com/rogpeppe/juju@v0.0.0-20140613142852-6337964b789e/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  	gitjujutesting "github.com/juju/testing"
     8  	gc "launchpad.net/gocheck"
     9  
    10  	coretesting "github.com/juju/juju/testing"
    11  	"github.com/juju/juju/worker/peergrouper"
    12  )
    13  
    14  type InitiateSuite struct {
    15  	coretesting.BaseSuite
    16  }
    17  
    18  var _ = gc.Suite(&InitiateSuite{})
    19  
    20  // TODO(natefinch) add a test that InitiateMongoServer works when
    21  // we support upgrading of existing environments.
    22  
    23  func (s *InitiateSuite) TestInitiateReplicaSet(c *gc.C) {
    24  	var err error
    25  	inst := &gitjujutesting.MgoInstance{Params: []string{"--replSet", "juju"}}
    26  	err = inst.Start(coretesting.Certs)
    27  	c.Assert(err, gc.IsNil)
    28  	defer inst.Destroy()
    29  
    30  	info := inst.DialInfo()
    31  	args := peergrouper.InitiateMongoParams{
    32  		DialInfo:       info,
    33  		MemberHostPort: inst.Addr(),
    34  	}
    35  
    36  	err = peergrouper.MaybeInitiateMongoServer(args)
    37  	c.Assert(err, gc.IsNil)
    38  
    39  	// This would return a mgo.QueryError if a ReplicaSet
    40  	// configuration already existed but we tried to create
    41  	// one with replicaset.Initiate again.
    42  	err = peergrouper.MaybeInitiateMongoServer(args)
    43  	c.Assert(err, gc.IsNil)
    44  
    45  	// TODO test login
    46  }