Lock lifecycle transition matrix
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package com.livingworld.regions;
|
package com.livingworld.regions;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
import java.util.Set;
|
||||||
import org.junit.jupiter.api.DisplayName;
|
import org.junit.jupiter.api.DisplayName;
|
||||||
import org.junit.jupiter.api.Nested;
|
import org.junit.jupiter.api.Nested;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@@ -10,6 +11,18 @@ import org.junit.jupiter.api.Test;
|
|||||||
*/
|
*/
|
||||||
class RegionLifecycleControllerTest {
|
class RegionLifecycleControllerTest {
|
||||||
|
|
||||||
|
private static final Set<String> EXPECTED_TRANSITIONS = Set.of(
|
||||||
|
"UNLOADED->LOADING",
|
||||||
|
"LOADING->ACTIVE",
|
||||||
|
"LOADING->FAILED",
|
||||||
|
"ACTIVE->DIRTY",
|
||||||
|
"DIRTY->SAVING",
|
||||||
|
"SAVING->ACTIVE",
|
||||||
|
"SAVING->FAILED",
|
||||||
|
"ACTIVE->UNLOADING",
|
||||||
|
"UNLOADING->UNLOADED",
|
||||||
|
"FAILED->LOADING");
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
// Allowed transitions
|
// Allowed transitions
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -18,6 +31,20 @@ class RegionLifecycleControllerTest {
|
|||||||
@DisplayName("Allowed transitions")
|
@DisplayName("Allowed transitions")
|
||||||
class AllowedTransitions {
|
class AllowedTransitions {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("complete transition matrix matches the lifecycle design")
|
||||||
|
void completeTransitionMatrixMatchesDesign() {
|
||||||
|
for (RegionLifecycleState from : RegionLifecycleState.values()) {
|
||||||
|
for (RegionLifecycleState to : RegionLifecycleState.values()) {
|
||||||
|
String transition = from.name() + "->" + to.name();
|
||||||
|
assertEquals(
|
||||||
|
EXPECTED_TRANSITIONS.contains(transition),
|
||||||
|
RegionLifecycleController.canTransition(from, to),
|
||||||
|
transition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("UNLOADED -> LOADING is allowed")
|
@DisplayName("UNLOADED -> LOADING is allowed")
|
||||||
void unloadedToLoading() {
|
void unloadedToLoading() {
|
||||||
|
|||||||
Reference in New Issue
Block a user