-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathroom_test.go
79 lines (55 loc) · 1.28 KB
/
room_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package main
import (
"testing"
//"fmt"
//"errors"
)
func TestNewRoom(t *testing.T) {
room := NewRoom(1)
if room == nil {
t.Error("Room not created")
}
}
func TestJoinRoom(t *testing.T) {
room := NewRoom(1)
mockConn := &MockConn{}
joined := make(chan bool)
room.Join() <-JoinRequest{
Conn: mockConn,
Joined: joined,
}
if !<-joined {
t.Error("Expecting true")
}
}
func TestRoomStarts(t *testing.T) {
room := NewRoom(5)
for i := 0; i < 5; i++ {
room.Join() <-JoinRequest{ Conn: NewMockConn(nil), }
}
if !<-room.Started() {
t.Error("Expecting true on started channel")
}
}
func TestReadsBroadcastToRoom(t *testing.T) {
bsonOrb := BSONFromOrb(t, Orb{
X: 1.0,
Y: 2.0,
ID: "4aa4ec0e-cf3f-4f4d-827f-f1415b51d26d",
})
room := NewRoom(3)
writtenChan := make(chan bool)
reciever1 := NewMockConn(writtenChan)
reciever2 := NewMockConn(writtenChan)
sender := NewMockConn(writtenChan)
sender.SetMockReadData(bsonOrb)
room.Join() <-JoinRequest{ Conn: reciever1, }
room.Join() <-JoinRequest{ Conn: reciever2, }
room.Join() <-JoinRequest{ Conn: sender, }
<-writtenChan
<-writtenChan
orb1 := OrbFromBSON(t, reciever1.MockWriteData())
orb2 := OrbFromBSON(t, reciever2.MockWriteData())
AssertOrbAt(t, orb1, 1.0, 2.0)
AssertOrbAt(t, orb2, 1.0, 2.0)
}