github.com/cloudbase/juju-core@v0.0.0-20140504232958-a7271ac7912f/state/apiserver/client/status_test.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package client_test
     5  
     6  import (
     7  	gc "launchpad.net/gocheck"
     8  
     9  	"launchpad.net/juju-core/instance"
    10  	"launchpad.net/juju-core/state"
    11  )
    12  
    13  type statusSuite struct {
    14  	baseSuite
    15  }
    16  
    17  var _ = gc.Suite(&statusSuite{})
    18  
    19  func (s *statusSuite) addMachine(c *gc.C) *state.Machine {
    20  	machine, err := s.State.AddMachine("quantal", state.JobHostUnits)
    21  	c.Assert(err, gc.IsNil)
    22  	return machine
    23  }
    24  
    25  // Complete testing of status functionality happens elsewhere in the codebase,
    26  // these tests just sanity-check the api itself.
    27  
    28  func (s *statusSuite) TestFullStatus(c *gc.C) {
    29  	machine := s.addMachine(c)
    30  	client := s.APIState.Client()
    31  	status, err := client.Status(nil)
    32  	c.Assert(err, gc.IsNil)
    33  	c.Check(status.EnvironmentName, gc.Equals, "dummyenv")
    34  	c.Check(status.Services, gc.HasLen, 0)
    35  	c.Check(status.Machines, gc.HasLen, 1)
    36  	resultMachine, ok := status.Machines[machine.Id()]
    37  	if !ok {
    38  		c.Fatalf("Missing machine with id %q", machine.Id())
    39  	}
    40  	c.Check(resultMachine.Id, gc.Equals, machine.Id())
    41  	c.Check(resultMachine.Series, gc.Equals, machine.Series())
    42  }
    43  
    44  func (s *statusSuite) TestLegacyStatus(c *gc.C) {
    45  	machine := s.addMachine(c)
    46  	instanceId := "i-fakeinstance"
    47  	err := machine.SetProvisioned(instance.Id(instanceId), "fakenonce", nil)
    48  	c.Assert(err, gc.IsNil)
    49  	client := s.APIState.Client()
    50  	status, err := client.LegacyStatus()
    51  	c.Assert(err, gc.IsNil)
    52  	c.Check(status.Machines, gc.HasLen, 1)
    53  	resultMachine, ok := status.Machines[machine.Id()]
    54  	if !ok {
    55  		c.Fatalf("Missing machine with id %q", machine.Id())
    56  	}
    57  	c.Check(resultMachine.InstanceId, gc.Equals, instanceId)
    58  }