mirror of
https://github.com/crazybber/go-pattern-examples.git
synced 2024-11-22 11:56:03 +03:00
56 lines
1.1 KiB
Go
56 lines
1.1 KiB
Go
package command
|
|
|
|
import "testing"
|
|
|
|
func TestTroopCommand(t *testing.T) {
|
|
|
|
//教官
|
|
in := Instructor{}
|
|
|
|
//受训队伍1
|
|
tr1 := &Troop{name: "girl team"}
|
|
turnLeft := &TurnLeftCommand{receiver: tr1}
|
|
|
|
//受训队伍2
|
|
tr2 := &Troop{name: "boy team"}
|
|
|
|
turnRight := &TurnLeftCommand{receiver: tr2}
|
|
|
|
//准备命令发给不同的队伍
|
|
in.AddCommand(turnRight)
|
|
in.AddCommand(turnLeft)
|
|
|
|
turnback := &TurnBackCommand{receiver: tr2}
|
|
|
|
in.AddCommand(turnback)
|
|
|
|
turnback = &TurnBackCommand{receiver: tr1}
|
|
|
|
in.AddCommand(turnback)
|
|
|
|
//开始发布指令
|
|
in.Execute()
|
|
|
|
}
|
|
|
|
func TestDrawCommand(t *testing.T) {
|
|
|
|
painter := PathPainter{}
|
|
|
|
painter.Append(&DrawCommand{&Position{1, 1}})
|
|
painter.Append(&DrawCommand{&Position{2, 2}})
|
|
painter.Append(&DrawCommand{&Position{1, 3}})
|
|
|
|
expect := "1.1\n2.2\n1.3\n"
|
|
if painter.Execute() != expect {
|
|
t.Errorf("Expect result to equal %s, but %s.\n", expect, painter.Execute())
|
|
}
|
|
|
|
painter.Undo()
|
|
expect = "1.1\n2.2\n"
|
|
if painter.Execute() != expect {
|
|
t.Errorf("Expect result to equal %s, but %s.\n", expect, painter.Execute())
|
|
}
|
|
|
|
}
|