package com.serliunx.statemanagement; import com.serliunx.statemanagement.manager.BreakageUnidirectionalStateManager; import com.serliunx.statemanagement.manager.DefaultUnidirectionalStateManager; import com.serliunx.statemanagement.manager.UnidirectionalStateManager; import com.serliunx.statemanagement.support.PrinterState; import org.junit.Test; /** * 状态管理器测试 * * @author SerLiunx * @version 1.0.0 * @since 2024/12/28 */ public class ManagerTest { @Test public void testUnidirectionalStateManager() { UnidirectionalStateManager unidirectionalStateManager = new DefaultUnidirectionalStateManager<>(PrinterState.values()); System.out.println(unidirectionalStateManager.switchTo(PrinterState.IDLE)); System.out.println(unidirectionalStateManager.switchTo(PrinterState.SCANNING)); } @Test public void testBreakageUnidirectionalStateManager() { UnidirectionalStateManager bum = new BreakageUnidirectionalStateManager<>(PrinterState.values()); while (bum.isSwitchable()) { System.out.println(bum.getAndSwitchNext()); } System.out.println(bum.current()); } }