From d53306141005f80fb6f57d41bed2214993ce5d5d Mon Sep 17 00:00:00 2001 From: SerLiunx-ctrl <17689543@qq.com> Date: Wed, 23 Apr 2025 08:50:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E4=BB=85=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95=E7=9A=84=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E8=BE=93=E5=87=BA.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 8 ++++++++ .../serliunx/statemanagement/MachineTest.java | 19 ++++++++++++------- .../serliunx/statemanagement/ManagerTest.java | 4 ++++ .../statemanagement/StateMachinesTest.java | 16 ++++++++++------ src/test/resources/logback.xml | 15 +++++++++++++++ 5 files changed, 49 insertions(+), 13 deletions(-) create mode 100644 src/test/resources/logback.xml diff --git a/pom.xml b/pom.xml index f83cd8a..4b68b20 100644 --- a/pom.xml +++ b/pom.xml @@ -21,5 +21,13 @@ 4.13.2 test + + + + ch.qos.logback + logback-classic + 1.2.13 + test + \ No newline at end of file diff --git a/src/test/java/com/serliunx/statemanagement/MachineTest.java b/src/test/java/com/serliunx/statemanagement/MachineTest.java index 10c801a..994c3a3 100644 --- a/src/test/java/com/serliunx/statemanagement/MachineTest.java +++ b/src/test/java/com/serliunx/statemanagement/MachineTest.java @@ -6,9 +6,12 @@ import com.serliunx.statemanagement.machine.StateMachineBuilder; import com.serliunx.statemanagement.support.PrinterEvent; import com.serliunx.statemanagement.support.PrinterState; import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; /** * 状态机测试 @@ -19,6 +22,8 @@ import java.util.concurrent.Executors; */ public class MachineTest { + private static final Logger log = LoggerFactory.getLogger(MachineTest.class); + private final ExecutorService executor = Executors.newFixedThreadPool(5); @Test @@ -29,15 +34,15 @@ public class MachineTest { .withInitial(PrinterState.STOPPING) .build(); - System.out.println(stateMachine.current()); + log.info("{}", stateMachine.current()); } @Test public void testConcurrentStateMachine() throws Exception { ConcurrentStateMachine stateMachine = StateMachineBuilder.from(PrinterState.values()) - .async() + .async(false) .whenEntry(PrinterState.STOPPING, h -> { - System.out.println(1111); + log.info("enter stopping~"); }) .whenHappened(PrinterEvent.TURN_OFF, l -> { if (l.switchTo(PrinterState.STOPPING)) @@ -47,8 +52,7 @@ public class MachineTest { .concurrent() .build(); -// stateMachine.publish(PrinterEvent.TURN_OFF); - System.out.println(stateMachine.current()); + log.info("{}", stateMachine.current()); stateMachine.close(); } @@ -58,15 +62,16 @@ public class MachineTest { .async(false) .concurrent() .whenEntry(PrinterState.STOPPING, h -> { - System.out.println("entering stopping..."); + log.info("stopping..."); }) .build(); for (int i = 0; i < 5; i++) { executor.execute(() -> { - System.out.println(stateMachine.compareAndSet(PrinterState.IDLE, PrinterState.STOPPING, true)); + log.info("{}", stateMachine.compareAndSet(PrinterState.IDLE, PrinterState.STOPPING, true)); }); } + TimeUnit.SECONDS.sleep(5); } } diff --git a/src/test/java/com/serliunx/statemanagement/ManagerTest.java b/src/test/java/com/serliunx/statemanagement/ManagerTest.java index 954d73c..bf009de 100644 --- a/src/test/java/com/serliunx/statemanagement/ManagerTest.java +++ b/src/test/java/com/serliunx/statemanagement/ManagerTest.java @@ -5,6 +5,8 @@ import com.serliunx.statemanagement.manager.DefaultUnidirectionalStateManager; import com.serliunx.statemanagement.manager.UnidirectionalStateManager; import com.serliunx.statemanagement.support.PrinterState; import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * 状态管理器测试 @@ -15,6 +17,8 @@ import org.junit.Test; */ public class ManagerTest { + private static final Logger log = LoggerFactory.getLogger(ManagerTest.class); + @Test public void testUnidirectionalStateManager() { UnidirectionalStateManager unidirectionalStateManager = diff --git a/src/test/java/com/serliunx/statemanagement/StateMachinesTest.java b/src/test/java/com/serliunx/statemanagement/StateMachinesTest.java index 8a194bd..b8d1338 100644 --- a/src/test/java/com/serliunx/statemanagement/StateMachinesTest.java +++ b/src/test/java/com/serliunx/statemanagement/StateMachinesTest.java @@ -5,6 +5,8 @@ import com.serliunx.statemanagement.machine.StateMachine; import com.serliunx.statemanagement.machine.support.StateMachines; import com.serliunx.statemanagement.support.PrinterState; import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * 状态机工具类测试 @@ -14,21 +16,23 @@ import org.junit.Test; */ public class StateMachinesTest { + private static final Logger log = LoggerFactory.getLogger(StateMachinesTest.class); + @Test public void testConcurrentStateMachines() throws Exception { ConcurrentStateMachine machine = StateMachines.concurrentStateMachine(PrinterState.values()); - System.out.println(machine.current()); - System.out.println(machine.switchPrevAndGet()); - System.out.println(machine.current()); + log.info("{}", machine.current()); + log.info("{}", machine.switchPrevAndGet()); + log.info("{}", machine.current()); machine.close(); } @Test public void testStateMachines() throws Exception { StateMachine machine = StateMachines.defaultStateMachine(PrinterState.values()); - System.out.println(machine.current()); - System.out.println(machine.switchNextAndGet()); - System.out.println(machine.current()); + log.info("{}", machine.current()); + log.info("{}", machine.switchPrevAndGet()); + log.info("{}", machine.current()); machine.close(); } } diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml new file mode 100644 index 0000000..997d744 --- /dev/null +++ b/src/test/resources/logback.xml @@ -0,0 +1,15 @@ + + + + + %boldGreen(%d{yyyy-MM-dd HH:mm:ss(SSS)}) %magenta([%25.25thread]) %highlight([%-6level]) %boldCyan(%-36logger{32}): %msg%n + + + + + + + + + + \ No newline at end of file