github.com/mattyw/juju@v0.0.0-20140610034352-732aecd63861/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 "github.com/juju/juju/instance" 10 "github.com/juju/juju/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 c.Check(status.Networks, gc.HasLen, 0) 37 resultMachine, ok := status.Machines[machine.Id()] 38 if !ok { 39 c.Fatalf("Missing machine with id %q", machine.Id()) 40 } 41 c.Check(resultMachine.Id, gc.Equals, machine.Id()) 42 c.Check(resultMachine.Series, gc.Equals, machine.Series()) 43 } 44 45 func (s *statusSuite) TestLegacyStatus(c *gc.C) { 46 machine := s.addMachine(c) 47 instanceId := "i-fakeinstance" 48 err := machine.SetProvisioned(instance.Id(instanceId), "fakenonce", nil) 49 c.Assert(err, gc.IsNil) 50 client := s.APIState.Client() 51 status, err := client.LegacyStatus() 52 c.Assert(err, gc.IsNil) 53 c.Check(status.Machines, gc.HasLen, 1) 54 resultMachine, ok := status.Machines[machine.Id()] 55 if !ok { 56 c.Fatalf("Missing machine with id %q", machine.Id()) 57 } 58 c.Check(resultMachine.InstanceId, gc.Equals, instanceId) 59 }