// TestCleaner create 2 metrics, one old and one new. // After a single run of the cleanup worker it expects the // old one to be deleted func (s *CleanupSuite) TestCleaner(c *gc.C) { notify := make(chan string, 1) var client mockClient worker := metricworker.NewCleanup(&client, notify) defer worker.Kill() select { case <-notify: case <-time.After(coretesting.LongWait): c.Fatalf("the cleanup function should have fired by now") } c.Assert(client.calls, gc.DeepEquals, []string{"CleanupOldMetrics"}) }
// TestCleaner create 2 metrics, one old and one new. // After a single run of the cleanup worker it expects the // old one to be deleted func (s *CleanupSuite) TestCleaner(c *gc.C) { unit := s.Factory.MakeUnit(c, nil) oldTime := time.Now().Add(-(time.Hour * 25)) now := time.Now() oldMetric := s.Factory.MakeMetric(c, &factory.MetricParams{Unit: unit, Sent: true, Time: &oldTime}) newMetric := s.Factory.MakeMetric(c, &factory.MetricParams{Unit: unit, Sent: true, Time: &now}) notify := make(chan struct{}) client := metricsmanager.NewClient(s.APIState) worker := metricworker.NewCleanup(client, notify) defer worker.Kill() select { case <-notify: case <-time.After(coretesting.LongWait): c.Fatalf("the cleanup function should have fired by now") } _, err := s.State.MetricBatch(newMetric.UUID()) c.Assert(err, gc.IsNil) _, err = s.State.MetricBatch(oldMetric.UUID()) c.Assert(err, jc.Satisfies, errors.IsNotFound) }