// TestWorkUnitPrioritySet tests two different ways of setting work unit // priority. func TestWorkUnitPrioritySet(t *testing.T) { var ( err error unit coordinate.WorkUnit ) sts := SimpleTestSetup{ NamespaceName: "TestWorkUnitPrioritySet", WorkerName: "worker", WorkSpecName: "spec", } sts.SetUp(t) defer sts.TearDown(t) unit, err = sts.WorkSpec.AddWorkUnit("a", map[string]interface{}{}, coordinate.WorkUnitMeta{}) if assert.NoError(t, err) { UnitHasPriority(t, unit, 0.0) } unit, err = sts.WorkSpec.AddWorkUnit("b", map[string]interface{}{}, coordinate.WorkUnitMeta{}) if assert.NoError(t, err) { err = unit.SetPriority(10.0) if assert.NoError(t, err) { UnitHasPriority(t, unit, 10.0) } } unit, err = sts.WorkSpec.AddWorkUnit("c", map[string]interface{}{}, coordinate.WorkUnitMeta{}) assert.NoError(t, err) err = sts.WorkSpec.SetWorkUnitPriorities(coordinate.WorkUnitQuery{ Names: []string{"c"}, }, 20.0) if assert.NoError(t, err) { UnitHasPriority(t, unit, 20.0) } unit, err = sts.WorkSpec.AddWorkUnit("d", map[string]interface{}{}, coordinate.WorkUnitMeta{}) assert.NoError(t, err) err = sts.WorkSpec.AdjustWorkUnitPriorities(coordinate.WorkUnitQuery{ Names: []string{"d"}, }, 20.0) if assert.NoError(t, err) { UnitHasPriority(t, unit, 20.0) } err = sts.WorkSpec.AdjustWorkUnitPriorities(coordinate.WorkUnitQuery{ Names: []string{"d"}, }, 10.0) if assert.NoError(t, err) { UnitHasPriority(t, unit, 30.0) } unit, err = sts.WorkSpec.WorkUnit("b") if assert.NoError(t, err) { UnitHasPriority(t, unit, 10.0) } sts.CheckWorkUnitOrder(t, "d", "c", "b", "a") }