mirror of
https://github.com/crazybber/go-pattern-examples.git
synced 2024-11-22 03:46:03 +03:00
53 lines
970 B
Go
53 lines
970 B
Go
package state
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestRobotState(t *testing.T) {
|
|
|
|
robot := NewSportRobot("home keeper")
|
|
|
|
//主动驱动行为
|
|
robot.Move()
|
|
|
|
//跑
|
|
robot.UpdateState(&RuningState{})
|
|
|
|
//跑一会
|
|
time.Sleep(time.Millisecond * 234)
|
|
|
|
//走
|
|
robot.UpdateState(&WalkState{})
|
|
|
|
//走一会儿
|
|
time.Sleep(time.Millisecond * 544)
|
|
//继续跑
|
|
robot.UpdateState(&RuningState{})
|
|
|
|
}
|
|
func TestAlarmState(t *testing.T) {
|
|
|
|
expect := "vibrating humming ... vibrating humming...vibrating humming..." +
|
|
"vibrating humming ... vibrating humming...vibrating humming..." +
|
|
"sun rise ,get up ,get up get up..."
|
|
|
|
//创建一个手机闹铃
|
|
mobile := NewAlert()
|
|
|
|
ringsSounds := mobile.Alert()
|
|
|
|
//叠加振铃声音,振铃响两遍
|
|
ringsSounds += mobile.Alert()
|
|
|
|
//设置振铃的铃声
|
|
mobile.SetState(&AlertSong{})
|
|
|
|
ringsSounds += mobile.Alert()
|
|
|
|
if ringsSounds != expect {
|
|
t.Errorf("Expect result to equal %s, but %s.\n", expect, ringsSounds)
|
|
}
|
|
}
|