BAEL-2441: Providing example for Implementing simple State Machine with Java Enums.

This commit is contained in:
PRIFTI
2019-01-15 21:38:40 +01:00
parent f1fa9c8253
commit 4c9ea991cc
2 changed files with 87 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
package com.baeldung.algorithms.enumstatemachine;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class LeaveRequestStateTest {
@Test
public void givenLeaveRequest_whenStateEscalated_thenResponsibleIsTeamLeader() {
LeaveRequestState state = LeaveRequestState.Escalated;
String responsible = state.responsiblePerson();
assertEquals(responsible, "Team Leader");
}
@Test
public void givenLeaveRequest_whenStateApproved_thenResponsibleIsDepartmentManager() {
LeaveRequestState state = LeaveRequestState.Approved;
String responsible = state.responsiblePerson();
assertEquals(responsible, "Department Manager");
}
@Test
public void givenLeaveRequest_whenNextStateIsCalled_thenStateIsChanged() {
LeaveRequestState state = LeaveRequestState.Submitted;
state = state.nextState();
assertEquals(state, LeaveRequestState.Escalated);
state = state.nextState();
assertEquals(state, LeaveRequestState.Approved);
state = state.nextState();
assertEquals(state, LeaveRequestState.Approved);
}
}