Skip to content

Commit 5b108e9

Browse files
author
Joel Schutz
committed
Updates and clean director tests
1 parent 7eb5b21 commit 5b108e9

File tree

1 file changed

+28
-15
lines changed

1 file changed

+28
-15
lines changed

director_test.go

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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-
189
func 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

2819
func 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

Comments
 (0)