1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package cn.iocoder.yudao.module.mes.service.pro.task.schedule;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
import org.junit.jupiter.api.Test;
import java.time.LocalDateTime;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
 
class MesSchedulePriorityTest {
    @Test void higherPriorityFirstThenEarlierDeliveryThenId() {
        var low = new MesProWorkOrderDO().setId(1L).setSchedulePriority(0).setRequestDate(LocalDateTime.of(2026,1,1,0,0));
        var high = new MesProWorkOrderDO().setId(2L).setSchedulePriority(9).setRequestDate(LocalDateTime.of(2026,2,1,0,0));
        var older = new MesProWorkOrderDO().setId(3L).setSchedulePriority(9).setRequestDate(LocalDateTime.of(2026,1,2,0,0));
        assertEquals(List.of(3L,2L,1L), List.of(low,high,older).stream().sorted(MesSchedulePriority.comparator()).map(MesProWorkOrderDO::getId).toList());
    }
}