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