package com.zy.asrs.task.support; import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.Collections; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; class AutoFrontLocMoveConfigResolverTest { private final AutoFrontLocMoveConfigResolver resolver = new AutoFrontLocMoveConfigResolver(); @Test void parseRowsShouldKeepConfiguredOrderAndDeduplicate() { assertEquals(Arrays.asList(20, 19, 18, 15, 14, 13, 8), resolver.parseRows("20-18,15-13,8,18")); } @Test void normalizeShouldApplyDefaultsAndDropInvalidRules() { AutoFrontLocMoveSettings settings = new AutoFrontLocMoveSettings(); settings.setEnabled(true); settings.setIntervalSeconds(0); settings.setUserId(0L); AutoFrontLocMoveSettings.Rule invalidRule = new AutoFrontLocMoveSettings.Rule(); invalidRule.setCrnNo(1); AutoFrontLocMoveSettings.Rule validRule = new AutoFrontLocMoveSettings.Rule(); validRule.setCrnNo(2); validRule.setFrontRows("1-3"); validRule.setSourceRows("6-4"); settings.setRules(Arrays.asList(invalidRule, validRule)); resolver.normalize(settings); assertEquals(Integer.valueOf(60), settings.getIntervalSeconds()); assertEquals(Long.valueOf(9527L), settings.getUserId()); assertEquals(1, settings.getRules().size()); assertEquals(Arrays.asList(1, 2, 3), settings.getRules().get(0).getFrontRowList()); assertEquals(Arrays.asList(6, 5, 4), settings.getRules().get(0).getSourceRowList()); AutoFrontLocMoveSettings onlyInvalid = new AutoFrontLocMoveSettings(); onlyInvalid.setEnabled(true); onlyInvalid.setRules(Collections.singletonList(invalidRule)); resolver.normalize(onlyInvalid); assertFalse(onlyInvalid.isEnabled()); } }