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 }