-
-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathask.bats
More file actions
99 lines (91 loc) · 1.93 KB
/
Copy pathask.bats
File metadata and controls
99 lines (91 loc) · 1.93 KB
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
#!/usr/bin/env bats
setup_fixture
# It uses echo pipe just for test.
# You should invoke `l.ask <message>` for normal usage.
@test "'l.ask test_ask' returns 'YES'" {
t() {
echo y | l.ask test_ask
echo Y | l.ask test_ask
echo ye | l.ask test_ask
echo Ye | l.ask test_ask
echo yE | l.ask test_ask
echo YE | l.ask test_ask
echo yes | l.ask test_ask
echo yES | l.ask test_ask
echo yeS | l.ask test_ask
echo YeS | l.ask test_ask
echo Yes | l.ask test_ask
echo YEs | l.ask test_ask
echo YES | l.ask test_ask
}
run t
assert_success
assert_equal "${#lines[@]}" 13
assert_line -n 0 'YES'
assert_line -n 1 'YES'
assert_line -n 2 'YES'
assert_line -n 3 'YES'
assert_line -n 4 'YES'
assert_line -n 5 'YES'
assert_line -n 6 'YES'
assert_line -n 7 'YES'
assert_line -n 8 'YES'
assert_line -n 9 'YES'
assert_line -n 10 'YES'
assert_line -n 11 'YES'
assert_line -n 12 'YES'
}
@test "'l.ask test_ask' returns 'NO'" {
t() {
echo n | l.ask test_ask
echo N | l.ask test_ask
echo no | l.ask test_ask
echo No | l.ask test_ask
echo nO | l.ask test_ask
echo NO | l.ask test_ask
}
run t
assert_success
assert_equal "${#lines[@]}" 6
assert_line -n 0 'NO'
assert_line -n 1 'NO'
assert_line -n 2 'NO'
assert_line -n 3 'NO'
assert_line -n 4 'NO'
assert_line -n 5 'NO'
}
@test "l.ask 'test_ask' N" {
t() {
echo '' | l.ask 'test_ask' N
}
run t
assert_success
assert_output 'NO'
}
@test "l.ask 'test_ask' Y" {
t() {
echo '' | l.ask 'test_ask' Y
}
run t
assert_success
assert_output 'YES'
}
@test "l.ask 'test_ask'" {
t() {
echo 'Y' | l.ask 'test_ask'
echo 'N' | l.ask 'test_ask'
}
run t
assert_success
assert_equal "${#lines[@]}" 2
assert_line -n 0 'YES'
assert_line -n 1 'NO'
}
@test "l.ask 'test_ask' with empty answer" {
t() {
echo '' | l.ask 'test_ask'
}
run t
assert_failure
assert_output ''
}