-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclient_test.go
133 lines (124 loc) · 3.95 KB
/
client_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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package main
import (
"testing"
"time"
)
func Test_it_should_call_join_on_short_input(t *testing.T) {
connection := Mock_Connection{}
client := IRC_client{&connection}
input := make(chan string)
output := make(chan string)
quit := make(chan bool)
client.attach_listeners(output, input, quit)
test_response_to_input("j test", input, output)
if connection.join_called != "test" {
t.Errorf("Join called with wrong value '%v'", connection.join_called)
}
}
func Test_it_should_call_part_on_short_input(t *testing.T) {
connection := Mock_Connection{}
client := IRC_client{&connection}
input := make(chan string)
output := make(chan string)
quit := make(chan bool)
client.attach_listeners(output, input, quit)
test_response_to_input("p", input, output)
if !connection.part_called {
t.Error("Part not called")
}
}
func Test_it_should_call_quit_on_short_input(t *testing.T) {
connection := Mock_Connection{}
client := IRC_client{&connection}
input := make(chan string)
output := make(chan string)
quit := make(chan bool)
client.attach_listeners(output, input, quit)
go func() { <-output }() //will wait to push echo message to screen
test_channel_called_on_input("q", input, quit)
if connection.raw_called != "QUIT" {
t.Errorf("Raw called with wrong value '%v'", connection.raw_called)
}
}
func Test_it_should_call_message_on_short_input(t *testing.T) {
connection := Mock_Connection{}
client := IRC_client{&connection}
input := make(chan string)
output := make(chan string)
quit := make(chan bool)
client.attach_listeners(output, input, quit)
test_response_to_input("m test_message", input, output)
if connection.message_called != "test_message" {
t.Errorf("Message called with wrong value '%v'", connection.raw_called)
}
}
func Test_it_should_call_whisper_on_short_input(t *testing.T) {
connection := Mock_Connection{}
client := IRC_client{&connection}
input := make(chan string)
output := make(chan string)
quit := make(chan bool)
client.attach_listeners(output, input, quit)
test_response_to_input("w user test_message", input, output)
if connection.raw_called != "PRIVMSG user test_message" {
t.Errorf("Raw called with wrong value '%v'", connection.raw_called)
}
}
func Test_it_should_call_raw_on_short_input(t *testing.T) {
connection := Mock_Connection{}
client := IRC_client{&connection}
input := make(chan string)
output := make(chan string)
quit := make(chan bool)
client.attach_listeners(output, input, quit)
test_response_to_input("r user test_message", input, output)
if connection.raw_called != "user test_message" {
t.Errorf("Raw called with wrong value '%v'", connection.raw_called)
}
}
func Test_it_should_give_help_short_input(t *testing.T) {
connection := Mock_Connection{}
client := IRC_client{&connection}
input := make(chan string)
output := make(chan string)
quit := make(chan bool)
client.attach_listeners(output, input, quit)
var response string
go func() { input <- "h" }()
select {
case response = <-output:
case <-time.After(time.Millisecond * 100):
}
if response == "" {
t.Errorf("No response recieved")
}
}
func Test_it_should_send_message_on_invalid_input(t *testing.T) {
connection := Mock_Connection{}
client := IRC_client{&connection}
input := make(chan string)
output := make(chan string)
quit := make(chan bool)
client.attach_listeners(output, input, quit)
test_response_to_input("test_message", input, output)
if connection.message_called != "test_message" {
t.Errorf("Message called with wrong value '%v'", connection.message_called)
}
}
func Test_it_should_give_warning_on_invalid_input(t *testing.T) {
connection := Mock_Connection{}
client := IRC_client{&connection}
input := make(chan string)
output := make(chan string)
quit := make(chan bool)
client.attach_listeners(output, input, quit)
var response string
go func() { input <- "j" }() // no channel name
select {
case response = <-output:
case <-time.After(time.Millisecond * 100):
}
if response == "" {
t.Errorf("No response recieved")
}
}