36 lines
761 B
Go
36 lines
761 B
Go
package integration
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"aego/engine/recorder"
|
|
"aego/schema"
|
|
)
|
|
|
|
func TestPlatformerSettingChangedEvent(t *testing.T) {
|
|
pf := openPlatformer(t)
|
|
pf.step(5)
|
|
tx := pf.app.Settings.Begin()
|
|
if err := tx.SetID("audio.bus.music.volume", schema.Float64(0.5)); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := tx.Apply(); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
pf.step(3)
|
|
player := pf.app.Scene.ID(pf.player)
|
|
n := 0
|
|
for _, r := range pf.app.Engine.MainWorld().Recorder.Snapshot(nil) {
|
|
if r.Kind == recorder.Event && r.Name == "OnSettingChanged" {
|
|
if r.Owner != player {
|
|
t.Fatalf("delivered to %v, want the player %v", r.Owner, player)
|
|
}
|
|
n++
|
|
}
|
|
}
|
|
if n != 1 {
|
|
t.Fatalf("OnSettingChanged delivered %d times, want 1", n)
|
|
}
|
|
pf.noFaults(t)
|
|
}
|