// TestWorkUnitPrioritySet tests two different ways of setting work unit // priority. func (s *Suite) TestWorkUnitPrioritySet(c *check.C) { var ( err error priority float64 unit coordinate.WorkUnit ) spec, worker := s.makeWorkSpecAndWorker(c) unit, err = spec.AddWorkUnit("a", map[string]interface{}{}, 0.0) c.Assert(err, check.IsNil) priority, err = unit.Priority() c.Assert(err, check.IsNil) c.Check(priority, check.Equals, 0.0) unit, err = spec.AddWorkUnit("b", map[string]interface{}{}, 0.0) c.Assert(err, check.IsNil) err = unit.SetPriority(10.0) c.Assert(err, check.IsNil) priority, err = unit.Priority() c.Assert(err, check.IsNil) c.Check(priority, check.Equals, 10.0) unit, err = spec.AddWorkUnit("c", map[string]interface{}{}, 0.0) c.Assert(err, check.IsNil) err = spec.SetWorkUnitPriorities(coordinate.WorkUnitQuery{ Names: []string{"c"}, }, 20.0) c.Assert(err, check.IsNil) priority, err = unit.Priority() c.Assert(err, check.IsNil) c.Check(priority, check.Equals, 20.0) unit, err = spec.AddWorkUnit("d", map[string]interface{}{}, 0.0) c.Assert(err, check.IsNil) err = spec.AdjustWorkUnitPriorities(coordinate.WorkUnitQuery{ Names: []string{"d"}, }, 20.0) priority, err = unit.Priority() c.Assert(err, check.IsNil) c.Check(priority, check.Equals, 20.0) c.Assert(err, check.IsNil) err = spec.AdjustWorkUnitPriorities(coordinate.WorkUnitQuery{ Names: []string{"d"}, }, 10.0) c.Assert(err, check.IsNil) priority, err = unit.Priority() c.Assert(err, check.IsNil) c.Check(priority, check.Equals, 30.0) unit, err = spec.WorkUnit("b") c.Assert(err, check.IsNil) priority, err = unit.Priority() c.Assert(err, check.IsNil) c.Check(priority, check.Equals, 10.0) checkWorkUnitOrder(c, worker, spec, "d", "c", "b", "a") }