func (s *unitPayloadsSuite) TestListAll(c *gc.C) { id1 := "f47ac10b-58cc-4372-a567-0e02b2c3d479" id2 := "f47ac10b-58cc-4372-a567-0e02b2c3d480" pl1 := s.newPayload("docker", "payloadA/payloadA-xyz") pl2 := s.newPayload("docker", "payloadB/payloadB-abc") s.persist.setPayload(id1, &pl1) s.persist.setPayload(id2, &pl2) fpi1 := payload.FullPayloadInfo{Payload: pl1} fpi2 := payload.FullPayloadInfo{Payload: pl2} ps := state.UnitPayloads{ Persist: s.persist, Unit: "a-service/0", } results, err := ps.List() c.Assert(err, jc.ErrorIsNil) s.stub.CheckCallNames(c, "ListAll", "LookUp", "LookUp") c.Assert(results, gc.HasLen, 2) if results[0].Payload.Name == "payloadA" { c.Check(results[0].Payload, jc.DeepEquals, &fpi1) c.Check(results[1].Payload, jc.DeepEquals, &fpi2) } else { c.Check(results[0].Payload, jc.DeepEquals, &fpi2) c.Check(results[1].Payload, jc.DeepEquals, &fpi1) } }
func (s *unitPayloadsSuite) TestListFailed(c *gc.C) { failure := errors.Errorf("<failed!>") s.stub.SetErrors(failure) ps := state.UnitPayloads{ Persist: s.persist, Unit: "a-service/0", } _, err := ps.List() s.stub.CheckCallNames(c, "ListAll") c.Check(errors.Cause(err), gc.Equals, failure) }
func (s *unitPayloadsSuite) TestListOkay(c *gc.C) { id := "f47ac10b-58cc-4372-a567-0e02b2c3d479" otherID := "f47ac10b-58cc-4372-a567-0e02b2c3d480" pl := s.newPayload("docker", "payloadA/payloadA-xyz") other := s.newPayload("docker", "payloadB/payloadB-abc") s.persist.setPayload(id, &pl) s.persist.setPayload(otherID, &other) ps := state.UnitPayloads{ Persist: s.persist, Unit: "a-service/0", } results, err := ps.List(id) c.Assert(err, jc.ErrorIsNil) s.stub.CheckCallNames(c, "List") c.Check(results, jc.DeepEquals, []payload.Result{{ ID: id, Payload: &payload.FullPayloadInfo{Payload: pl}, }}) }
func (s *unitPayloadsSuite) TestListMissing(c *gc.C) { missingID := "f47ac10b-58cc-4372-a567-0e02b2c3d480" id := "f47ac10b-58cc-4372-a567-0e02b2c3d479" pl := s.newPayload("docker", "payloadA/payloadA-xyz") s.persist.setPayload(id, &pl) ps := state.UnitPayloads{ Persist: s.persist, Unit: "a-service/0", } results, err := ps.List(id, missingID) c.Assert(err, jc.ErrorIsNil) c.Assert(results, gc.HasLen, 2) c.Check(results[1].Error, gc.NotNil) results[1].Error = nil c.Check(results, jc.DeepEquals, []payload.Result{{ ID: id, Payload: &payload.FullPayloadInfo{Payload: pl}, }, { ID: missingID, NotFound: true, }}) }