From dc3f9cc91759823ce59486f19b138be4b296a0f1 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 28 四月 2026 09:43:28 +0800
Subject: [PATCH] #

---
 src/test/java/com/zy/ai/service/AutoTuneApplyServiceImplTest.java |   56 +++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 47 insertions(+), 9 deletions(-)

diff --git a/src/test/java/com/zy/ai/service/AutoTuneApplyServiceImplTest.java b/src/test/java/com/zy/ai/service/AutoTuneApplyServiceImplTest.java
index bcfe4cd..1620f70 100644
--- a/src/test/java/com/zy/ai/service/AutoTuneApplyServiceImplTest.java
+++ b/src/test/java/com/zy/ai/service/AutoTuneApplyServiceImplTest.java
@@ -163,35 +163,73 @@
     }
 
     @Test
-    void rejectCrnOutBatchRunningLimitRangeAndStepCases() {
+    void crnOutBatchRunningLimitAllowsStepThreeAndRejectsRangeAndStepCases() {
         when(configService.getOne(any(Wrapper.class))).thenReturn(config("crnOutBatchRunningLimit", "10"));
 
         service.apply(request(true,
                 command("sys_config", null, "crnOutBatchRunningLimit", "13"),
+                command("sys_config", null, "crnOutBatchRunningLimit", "14"),
                 command("sys_config", null, "crnOutBatchRunningLimit", "21")
         ));
 
         List<AiAutoTuneChange> changes = savedChanges();
-        assertEquals("rejected", changes.get(0).getResultStatus());
-        assertTrue(changes.get(0).getRejectReason().contains("姝ラ暱涓嶈兘瓒呰繃 2"));
+        assertEquals("dry_run", changes.get(0).getResultStatus());
+        assertEquals("13", changes.get(0).getRequestedValue());
         assertEquals("rejected", changes.get(1).getResultStatus());
-        assertTrue(changes.get(1).getRejectReason().contains("1~20"));
+        assertTrue(changes.get(1).getRejectReason().contains("姝ラ暱涓嶈兘瓒呰繃 3"));
+        assertEquals("rejected", changes.get(2).getResultStatus());
+        assertTrue(changes.get(2).getRejectReason().contains("1~20"));
     }
 
     @Test
-    void rejectMaxInTaskRangeAndStepCases() {
+    void maxInTaskAllowsStepThreeAndRejectsRangeAndStepCases() {
         when(basCrnpService.getById(1)).thenReturn(crn(1, 1, 5));
 
         service.apply(request(true,
-                command("crn", "1", "maxInTask", "7"),
+                command("crn", "1", "maxInTask", "8"),
+                command("crn", "1", "maxInTask", "9"),
                 command("crn", "1", "maxInTask", "11")
         ));
 
         List<AiAutoTuneChange> changes = savedChanges();
-        assertEquals("rejected", changes.get(0).getResultStatus());
-        assertTrue(changes.get(0).getRejectReason().contains("姝ラ暱涓嶈兘瓒呰繃 1"));
+        assertEquals("dry_run", changes.get(0).getResultStatus());
+        assertEquals("8", changes.get(0).getRequestedValue());
         assertEquals("rejected", changes.get(1).getResultStatus());
-        assertTrue(changes.get(1).getRejectReason().contains("0~10"));
+        assertTrue(changes.get(1).getRejectReason().contains("姝ラ暱涓嶈兘瓒呰繃 3"));
+        assertEquals("rejected", changes.get(2).getResultStatus());
+        assertTrue(changes.get(2).getRejectReason().contains("0~10"));
+    }
+
+    @Test
+    void maxOutTaskAllowsStepThreeAndRejectsStepFour() {
+        when(basCrnpService.getById(1)).thenReturn(crn(1, 1, 1));
+
+        service.apply(request(true,
+                command("crn", "1", "maxOutTask", "4"),
+                command("crn", "1", "maxOutTask", "5")
+        ));
+
+        List<AiAutoTuneChange> changes = savedChanges();
+        assertEquals("dry_run", changes.get(0).getResultStatus());
+        assertEquals("4", changes.get(0).getRequestedValue());
+        assertEquals("rejected", changes.get(1).getResultStatus());
+        assertTrue(changes.get(1).getRejectReason().contains("姝ラ暱涓嶈兘瓒呰繃 3"));
+    }
+
+    @Test
+    void dualCrnMaxOutTaskAllowsStepThreeAndRejectsStepFour() {
+        when(basDualCrnpService.getById(2)).thenReturn(dualCrn(2, 1, 1));
+
+        service.apply(request(true,
+                command("dual_crn", "2", "maxOutTask", "4"),
+                command("dual_crn", "2", "maxOutTask", "5")
+        ));
+
+        List<AiAutoTuneChange> changes = savedChanges();
+        assertEquals("dry_run", changes.get(0).getResultStatus());
+        assertEquals("4", changes.get(0).getRequestedValue());
+        assertEquals("rejected", changes.get(1).getResultStatus());
+        assertTrue(changes.get(1).getRejectReason().contains("姝ラ暱涓嶈兘瓒呰繃 3"));
     }
 
     @Test

--
Gitblit v1.9.1