]> gitweb.factorcode.org Git - factor.git/blob - basis/io/monitors/recursive/recursive-tests.factor
Create basis vocab root
[factor.git] / basis / io / monitors / recursive / recursive-tests.factor
1 USING: accessors math kernel namespaces continuations
2 io.files io.monitors io.monitors.recursive io.backend
3 concurrency.mailboxes tools.test destructors ;
4 IN: io.monitors.recursive.tests
5
6 \ pump-thread must-infer
7
8 SINGLETON: mock-io-backend
9
10 TUPLE: counter i ;
11
12 SYMBOL: dummy-monitor-created
13 SYMBOL: dummy-monitor-disposed
14
15 TUPLE: dummy-monitor < monitor ;
16
17 M: dummy-monitor dispose
18     drop dummy-monitor-disposed get [ 1+ ] change-i drop ;
19
20 M: mock-io-backend (monitor)
21     nip
22     over exists? [
23         dummy-monitor new-monitor
24         dummy-monitor-created get [ 1+ ] change-i drop
25     ] [
26         "Does not exist" throw
27     ] if ;
28
29 M: mock-io-backend link-info
30     global [ link-info ] bind ;
31
32 [ ] [ 0 counter boa dummy-monitor-created set ] unit-test
33 [ ] [ 0 counter boa dummy-monitor-disposed set ] unit-test
34
35 [ ] [
36     mock-io-backend io-backend [
37         "" resource-path <mailbox> <recursive-monitor> dispose
38     ] with-variable
39 ] unit-test
40
41 [ t ] [ dummy-monitor-created get i>> 0 > ] unit-test
42
43 [ t ] [ dummy-monitor-created get i>> dummy-monitor-disposed get i>> = ] unit-test
44
45 [ "doesnotexist" temp-file delete-tree ] ignore-errors
46
47 [
48     mock-io-backend io-backend [
49         "doesnotexist" temp-file <mailbox> <recursive-monitor> dispose
50     ] with-variable
51 ] must-fail
52
53 [ ] [
54     mock-io-backend io-backend [
55         "" resource-path <mailbox> <recursive-monitor>
56         [ dispose ] [ dispose ] bi
57     ] with-variable
58 ] unit-test