Skip to content
This repository was archived by the owner on May 22, 2021. It is now read-only.

Commit be602b9

Browse files
committed
Behavior correction + Tests and bug fix
1 parent ca3fd5f commit be602b9

File tree

5 files changed

+29
-6
lines changed

5 files changed

+29
-6
lines changed

src/main/java/stateMachine/AbstractStateMachine.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,8 @@ public void linkStates(){
8888
}
8989
}
9090
}
91+
92+
public void triggerEvent(String name) {
93+
this.currentState = this.currentState.notifyEvent(name);
94+
}
9195
}

src/main/java/stateMachine/Event.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public enum Type {SEND, RAISE}
1616

1717
public Event(String name){
1818
this.name = name;
19+
this.type = Type.SEND;
1920
this.callables = new ArrayList<Callable>();
2021
}
2122

src/main/java/stateMachine/EventHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public void run() {
2323
while(run){
2424
Event e = getNextEvent();
2525
if(e != null){
26-
stateMachine.getCurrentState().notifyEvent(e.getName());
26+
stateMachine.triggerEvent(e.getName());
2727
}
2828
}
2929
}

src/main/java/stateMachine/Transition.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public Transition addTriggeredEvent(Event e){
6666
}
6767

6868
public void trigger(){
69+
System.out.println("Triggering transition");
6970
for(int i=0; i<sentEvents.size(); i++){
7071
sentEvents.get(i).trigger();
7172
}

src/test/java/integration/SimpleStateMachineTest.java

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
import org.junit.BeforeClass;
44
import org.junit.Test;
55
import org.xml.sax.SAXException;
6-
import stateMachine.AbstractStateMachine;
7-
import stateMachine.GStateMachine;
8-
import stateMachine.SCXMLToJava;
9-
import stateMachine.State;
6+
import stateMachine.*;
107

118
import javax.tools.JavaCompiler;
129
import javax.tools.ToolProvider;
@@ -95,12 +92,32 @@ public void testNBOfTransitions(){
9592
@Test
9693
public void testTransition(){
9794
List<State> states = this.stateMachine.getStateList();
98-
System.out.println(states.get(0).getTransitions().get(0));
9995
assertEquals(states.get(0).getTransitions().get(0).from(), states.get(0));
10096
assertEquals(states.get(0).getTransitions().get(0).to(), states.get(1));
10197

10298
assertEquals(states.get(1).getTransitions().get(0).from(), states.get(1));
10399
assertEquals(states.get(1).getTransitions().get(0).to(), states.get(0));
104100

105101
}
102+
103+
@Test
104+
public void testSendingEvent(){
105+
this.stateMachine.start();
106+
this.stateMachine.notifyEvent(new Event("event1"));
107+
try {
108+
Thread.sleep(100);
109+
} catch (InterruptedException e) {
110+
e.printStackTrace();
111+
}
112+
assertEquals("State2", this.stateMachine.getCurrentState().getId());
113+
114+
this.stateMachine.start();
115+
this.stateMachine.notifyEvent(new Event("event2"));
116+
try {
117+
Thread.sleep(100);
118+
} catch (InterruptedException e) {
119+
e.printStackTrace();
120+
}
121+
assertEquals("State1", this.stateMachine.getCurrentState().getId());
122+
}
106123
}

0 commit comments

Comments
 (0)