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
134
135
136
137
138
139
|
require 'test/helper'
class Nanoc3::DependencyTrackerTest < MiniTest::Unit::TestCase
include Nanoc3::TestHelpers
def test_initialize
items = [ mock, mock ]
tracker = Nanoc3::DependencyTracker.new(items)
assert_equal [], tracker.dependencies_for(items[0])
assert_equal [], tracker.dependencies_for(items[1])
end
def test_record_dependency
items = [ mock, mock ]
tracker = Nanoc3::DependencyTracker.new(items)
tracker.record_dependency(items[0], items[1])
assert_equal [ items[1] ], tracker.dependencies_for(items[0])
end
def test_start_and_stop
items = [ mock, mock ]
tracker = Nanoc3::DependencyTracker.new(items)
tracker.start
Nanoc3::NotificationCenter.post(:visit_started, items[0])
Nanoc3::NotificationCenter.post(:visit_started, items[1])
Nanoc3::NotificationCenter.post(:visit_ended, items[1])
Nanoc3::NotificationCenter.post(:visit_ended, items[0])
tracker.stop
assert_equal [ items[1] ], tracker.dependencies_for(items[0])
assert_equal [], tracker.dependencies_for(items[1])
end
def test_store_graph_and_load_graph_simple
items = [ mock, mock, mock, mock ]
items[0].stubs(:path).returns('/aaa/')
items[1].stubs(:path).returns('/bbb/')
items[2].stubs(:path).returns('/ccc/')
items[3].stubs(:path).returns('/ddd/')
tracker = Nanoc3::DependencyTracker.new(items)
tracker.record_dependency(items[0], items[1])
tracker.record_dependency(items[1], items[2])
tracker.record_dependency(items[1], items[3])
tracker.store_graph
assert File.file?(tracker.filename)
tracker = Nanoc3::DependencyTracker.new(items)
tracker.load_graph
assert_equal [ items[1] ], tracker.dependencies_for(items[0])
assert_equal [ items[2], items[3] ], tracker.dependencies_for(items[1])
assert_equal [], tracker.dependencies_for(items[2])
assert_equal [], tracker.dependencies_for(items[3])
end
def test_store_graph_with_custom_filename
items = [ mock, mock, mock, mock ]
items[0].stubs(:path).returns('/aaa/')
items[1].stubs(:path).returns('/bbb/')
items[2].stubs(:path).returns('/ccc/')
items[3].stubs(:path).returns('/ddd/')
tracker = Nanoc3::DependencyTracker.new(items)
tracker.filename = 'tmp/bob/iguana/bits'
tracker.record_dependency(items[0], items[1])
tracker.record_dependency(items[1], items[2])
tracker.record_dependency(items[1], items[3])
tracker.store_graph
assert File.file?(tracker.filename)
assert File.file?('tmp/bob/iguana/bits')
end
def test_store_graph_and_load_graph_with_removed_items
end
def test_store_graph_and_load_graph_with_added_items
end
def test_store_graph_and_load_graph_with_added_and_removed_items
end
def test_item_with_path
items = [ mock, mock, mock, mock ]
items[0].stubs(:path).returns('/aaa/')
items[1].stubs(:path).returns('/bbb/')
items[2].stubs(:path).returns('/ccc/')
items[3].stubs(:path).returns('/ddd/')
tracker = Nanoc3::DependencyTracker.new(items)
assert_equal items[0], tracker.send(:item_with_path, '/aaa/')
assert_equal items[1], tracker.send(:item_with_path, '/bbb/')
assert_equal items[2], tracker.send(:item_with_path, '/ccc/')
assert_equal items[3], tracker.send(:item_with_path, '/ddd/')
assert_equal nil, tracker.send(:item_with_path, '/123/')
end
end
|