@@ -6,17 +6,8 @@ import (
66 "github.com/stretchr/testify/assert"
77)
88
9- type DirectidScene struct {
10- MockScene
11- }
12-
13- func (m * DirectidScene ) Load (state int , sm SceneController [int ]) {
14- m .loadCalled = true
15- m .unloadReturns = state
16- }
17-
189func TestSceneDirector_NewSceneDirector (t * testing.T ) {
19- mockScene := & DirectidScene {}
10+ mockScene := & MockScene {}
2011 ruleSet := make (map [Scene [int ]][]Directive [int ])
2112
2213 director := NewSceneDirector [int ](mockScene , 1 , ruleSet )
@@ -26,8 +17,8 @@ func TestSceneDirector_NewSceneDirector(t *testing.T) {
2617}
2718
2819func TestSceneDirector_ProcessTrigger (t * testing.T ) {
29- mockScene := & DirectidScene {}
30- mockScene2 := & DirectidScene {}
20+ mockScene := & MockScene {}
21+ mockScene2 := & MockScene {}
3122 ruleSet := make (map [Scene [int ]][]Directive [int ])
3223
3324 director := NewSceneDirector [int ](mockScene , 1 , ruleSet )
@@ -44,14 +35,36 @@ func TestSceneDirector_ProcessTrigger(t *testing.T) {
4435 assert .Equal (t , rule .Dest , director .current )
4536}
4637
47- func TestSceneDirector_ProcessTriggerWiithTransition (t * testing.T ) {
48- mockScene := & DirectidScene {}
38+ func TestSceneDirector_ProcessTriggerWithTransition (t * testing.T ) {
39+ mockScene := & MockScene {}
40+ mockTransition := & baseTransitionImplementation {}
41+ ruleSet := make (map [Scene [int ]][]Directive [int ])
42+
43+ director := NewSceneDirector [int ](mockScene , 1 , ruleSet )
44+
45+ rule := Directive [int ]{Dest : & MockScene {}, Trigger : 2 , Transition : mockTransition }
46+ ruleSet [mockScene ] = []Directive [int ]{rule }
47+
48+ // Call the ProcessTrigger method with wrong trigger
49+ director .ProcessTrigger (1 )
50+ assert .NotEqual (t , rule .Transition , director .current )
51+
52+ // Call the ProcessTrigger method with correct trigger
53+ director .ProcessTrigger (2 )
54+ assert .Equal (t , rule .Transition , director .current )
55+
56+ rule .Transition .End ()
57+ assert .Equal (t , rule .Dest , director .current )
58+ }
59+
60+ func TestSceneDirector_ProcessTriggerWithTransitionAwareness (t * testing.T ) {
61+ mockScene := & MockTransitionAwareScene {}
4962 mockTransition := & baseTransitionImplementation {}
5063 ruleSet := make (map [Scene [int ]][]Directive [int ])
5164
5265 director := NewSceneDirector [int ](mockScene , 1 , ruleSet )
5366
54- rule := Directive [int ]{Dest : & DirectidScene {}, Trigger : 2 , Transition : mockTransition }
67+ rule := Directive [int ]{Dest : & MockTransitionAwareScene {}, Trigger : 2 , Transition : mockTransition }
5568 ruleSet [mockScene ] = []Directive [int ]{rule }
5669
5770 // Call the ProcessTrigger method with wrong trigger
0 commit comments