func (s *ServiceResourcesSuite) TestUpdatesUploaded(c *gc.C) { csRes := newStoreResource(c, "spam", "a-service", 2) res := csRes // a copy res.Origin = charmresource.OriginUpload sr := resource.ServiceResources{ Resources: []resource.Resource{ res, }, CharmStoreResources: []charmresource.Resource{ csRes.Resource, }, } updates, err := sr.Updates() c.Assert(err, jc.ErrorIsNil) c.Check(updates, gc.HasLen, 0) }
func (s *ServiceResourcesSuite) TestUpdatesNone(c *gc.C) { spam := newStoreResource(c, "spam", "a-service", 2) eggs := newStoreResource(c, "eggs", "a-service", 3) sr := resource.ServiceResources{ Resources: []resource.Resource{ spam, eggs, }, CharmStoreResources: []charmresource.Resource{ spam.Resource, eggs.Resource, }, } updates, err := sr.Updates() c.Assert(err, jc.ErrorIsNil) c.Check(updates, gc.HasLen, 0) }
func formatServiceResources(sr resource.ServiceResources) (FormattedServiceInfo, error) { var formatted FormattedServiceInfo updates, err := sr.Updates() if err != nil { return formatted, errors.Trace(err) } formatted = FormattedServiceInfo{ Resources: make([]FormattedSvcResource, len(sr.Resources)), Updates: make([]FormattedCharmResource, len(updates)), } for i, r := range sr.Resources { formatted.Resources[i] = FormatSvcResource(r) } for i, u := range updates { formatted.Updates[i] = FormatCharmResource(u) } return formatted, nil }
// FormatServiceDetails converts a ServiceResources value into a formatted value // for display on the command line. func FormatServiceDetails(sr resource.ServiceResources) (FormattedServiceDetails, error) { var formatted FormattedServiceDetails details, err := detailedResources("", sr) if err != nil { return formatted, errors.Trace(err) } updates, err := sr.Updates() if err != nil { return formatted, errors.Trace(err) } formatted = FormattedServiceDetails{ Resources: details, Updates: make([]FormattedCharmResource, len(updates)), } for i, u := range updates { formatted.Updates[i] = FormatCharmResource(u) } return formatted, nil }
func (s *ServiceResourcesSuite) TestUpdatesBadOrdering(c *gc.C) { spam := newStoreResource(c, "spam", "a-service", 2) eggs := newStoreResource(c, "eggs", "a-service", 3) expected := eggs.Resource expected.Revision += 1 sr := resource.ServiceResources{ Resources: []resource.Resource{ spam, eggs, }, CharmStoreResources: []charmresource.Resource{ expected, spam.Resource, }, } updates, err := sr.Updates() c.Assert(err, jc.ErrorIsNil) c.Check(updates, jc.DeepEquals, []charmresource.Resource{expected}) }