root / trunk / Pithos.Core.Test / IdleBatchTest.cs @ 79f92570
History | View | Annotate | Download (12.6 kB)
1 | 79f92570 | Panagiotis Kanavos | // ----------------------------------------------------------------------- |
---|---|---|---|
2 | 79f92570 | Panagiotis Kanavos | // <copyright file="IdleBatchTest.cs" company="Microsoft"> |
3 | 79f92570 | Panagiotis Kanavos | // TODO: Update copyright text. |
4 | 79f92570 | Panagiotis Kanavos | // </copyright> |
5 | 79f92570 | Panagiotis Kanavos | // ----------------------------------------------------------------------- |
6 | 79f92570 | Panagiotis Kanavos | |
7 | 79f92570 | Panagiotis Kanavos | using System.Collections.Concurrent; |
8 | 79f92570 | Panagiotis Kanavos | using System.ComponentModel; |
9 | 79f92570 | Panagiotis Kanavos | using System.IO; |
10 | 79f92570 | Panagiotis Kanavos | using System.Threading; |
11 | 79f92570 | Panagiotis Kanavos | using System.Threading.Tasks; |
12 | 79f92570 | Panagiotis Kanavos | using System.Threading.Tasks.Dataflow; |
13 | 79f92570 | Panagiotis Kanavos | using NUnit.Framework; |
14 | 79f92570 | Panagiotis Kanavos | using Pithos.Core.Agents; |
15 | 79f92570 | Panagiotis Kanavos | |
16 | 79f92570 | Panagiotis Kanavos | namespace Pithos.Core.Test |
17 | 79f92570 | Panagiotis Kanavos | { |
18 | 79f92570 | Panagiotis Kanavos | using System; |
19 | 79f92570 | Panagiotis Kanavos | using System.Collections.Generic; |
20 | 79f92570 | Panagiotis Kanavos | using System.Linq; |
21 | 79f92570 | Panagiotis Kanavos | using System.Text; |
22 | 79f92570 | Panagiotis Kanavos | |
23 | 79f92570 | Panagiotis Kanavos | /// <summary> |
24 | 79f92570 | Panagiotis Kanavos | /// TODO: Update summary. |
25 | 79f92570 | Panagiotis Kanavos | /// </summary> |
26 | 79f92570 | Panagiotis Kanavos | [TestFixture] |
27 | 79f92570 | Panagiotis Kanavos | public class IdleBatchTest |
28 | 79f92570 | Panagiotis Kanavos | { |
29 | 79f92570 | Panagiotis Kanavos | |
30 | 79f92570 | Panagiotis Kanavos | |
31 | 79f92570 | Panagiotis Kanavos | [Test] |
32 | 79f92570 | Panagiotis Kanavos | public void TestEnqueue() |
33 | 79f92570 | Panagiotis Kanavos | { |
34 | 79f92570 | Panagiotis Kanavos | var queue=new ConcurrentQueue<FileSystemEventArgs>(); |
35 | 79f92570 | Panagiotis Kanavos | var batch = new IdleBatch<FileSystemEventArgs>(1000,queue.AddFromEnumerable ); |
36 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Created,"path1","file1")); |
37 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
38 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
39 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
40 | 79f92570 | Panagiotis Kanavos | batch.ForceTrigger(); |
41 | 79f92570 | Panagiotis Kanavos | |
42 | 79f92570 | Panagiotis Kanavos | Assert.That(queue.Count,Is.EqualTo(4)); |
43 | 79f92570 | Panagiotis Kanavos | } |
44 | 79f92570 | Panagiotis Kanavos | |
45 | 79f92570 | Panagiotis Kanavos | [Test] |
46 | 79f92570 | Panagiotis Kanavos | public void TestTimeout() |
47 | 79f92570 | Panagiotis Kanavos | { |
48 | 79f92570 | Panagiotis Kanavos | var queue=new ConcurrentQueue<FileSystemEventArgs>(); |
49 | 79f92570 | Panagiotis Kanavos | var batch = new IdleBatch<FileSystemEventArgs>(100,queue.AddFromEnumerable ); |
50 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Created,"path1","file1")); |
51 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
52 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
53 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
54 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
55 | 79f92570 | Panagiotis Kanavos | |
56 | 79f92570 | Panagiotis Kanavos | Assert.That(queue.Count,Is.EqualTo(4)); |
57 | 79f92570 | Panagiotis Kanavos | queue.Clear(); |
58 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
59 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
60 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
61 | 79f92570 | Panagiotis Kanavos | |
62 | 79f92570 | Panagiotis Kanavos | Assert.That(queue.Count,Is.EqualTo(2)); |
63 | 79f92570 | Panagiotis Kanavos | } |
64 | 79f92570 | Panagiotis Kanavos | |
65 | 79f92570 | Panagiotis Kanavos | [Test] |
66 | 79f92570 | Panagiotis Kanavos | public void TestCreationSequence() |
67 | 79f92570 | Panagiotis Kanavos | { |
68 | 79f92570 | Panagiotis Kanavos | Dictionary<string, FileSystemEventArgs[]> events = null; |
69 | 79f92570 | Panagiotis Kanavos | var batch = new FileEventIdleBatch(100, dict => events = dict); |
70 | 79f92570 | Panagiotis Kanavos | |
71 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Created,"path1","file1")); |
72 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
73 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
74 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
75 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
76 | 79f92570 | Panagiotis Kanavos | |
77 | 79f92570 | Panagiotis Kanavos | Assert.That(events[@"path1\file1"].Select(arg => arg.ChangeType), Is.EquivalentTo(new[] { WatcherChangeTypes.Created })); |
78 | 79f92570 | Panagiotis Kanavos | } |
79 | 79f92570 | Panagiotis Kanavos | |
80 | 79f92570 | Panagiotis Kanavos | [Test] |
81 | 79f92570 | Panagiotis Kanavos | public void TestCreateDeleteSequence() |
82 | 79f92570 | Panagiotis Kanavos | { |
83 | 79f92570 | Panagiotis Kanavos | Dictionary<string, FileSystemEventArgs[]> events = null; |
84 | 79f92570 | Panagiotis Kanavos | var batch = new FileEventIdleBatch(100, dict => events = dict); |
85 | 79f92570 | Panagiotis Kanavos | |
86 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Created,"path1","file1")); |
87 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
88 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
89 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Deleted, "path1", "file1")); |
90 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
91 | 79f92570 | Panagiotis Kanavos | |
92 | 79f92570 | Panagiotis Kanavos | Assert.That(events.ContainsKey("path1\\file1"), Is.False); |
93 | 79f92570 | Panagiotis Kanavos | } |
94 | 79f92570 | Panagiotis Kanavos | |
95 | 79f92570 | Panagiotis Kanavos | [Test] |
96 | 79f92570 | Panagiotis Kanavos | public void TestChangeSequence() |
97 | 79f92570 | Panagiotis Kanavos | { |
98 | 79f92570 | Panagiotis Kanavos | Dictionary<string, FileSystemEventArgs[]> events = null; |
99 | 79f92570 | Panagiotis Kanavos | var batch = new FileEventIdleBatch(100, dict => events = dict); |
100 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
101 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
102 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
103 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
104 | 79f92570 | Panagiotis Kanavos | |
105 | 79f92570 | Panagiotis Kanavos | Assert.That(events[@"path1\file1"].Select(arg=>arg.ChangeType),Is.EquivalentTo(new[]{WatcherChangeTypes.Changed})); |
106 | 79f92570 | Panagiotis Kanavos | } |
107 | 79f92570 | Panagiotis Kanavos | |
108 | 79f92570 | Panagiotis Kanavos | [Test] |
109 | 79f92570 | Panagiotis Kanavos | public void TestEnsureEmptyAfterTrigger() |
110 | 79f92570 | Panagiotis Kanavos | { |
111 | 79f92570 | Panagiotis Kanavos | Dictionary<string, FileSystemEventArgs[]> events = null; |
112 | 79f92570 | Panagiotis Kanavos | var batch = new FileEventIdleBatch(100, dict => events = dict); |
113 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
114 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
115 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
116 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
117 | 79f92570 | Panagiotis Kanavos | Assert.That(events[@"path1\file1"].Select(arg => arg.ChangeType), Is.EquivalentTo(new[] { WatcherChangeTypes.Changed })); |
118 | 79f92570 | Panagiotis Kanavos | events = new Dictionary<string, FileSystemEventArgs[]>(); |
119 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
120 | 79f92570 | Panagiotis Kanavos | Assert.That(events, Is.Empty); |
121 | 79f92570 | Panagiotis Kanavos | } |
122 | 79f92570 | Panagiotis Kanavos | |
123 | 79f92570 | Panagiotis Kanavos | [Test] |
124 | 79f92570 | Panagiotis Kanavos | public void TestChangeDeleteSequence() |
125 | 79f92570 | Panagiotis Kanavos | { |
126 | 79f92570 | Panagiotis Kanavos | Dictionary<string, FileSystemEventArgs[]> events = null; |
127 | 79f92570 | Panagiotis Kanavos | var batch = new FileEventIdleBatch(100, dict => events = dict); |
128 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
129 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
130 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Deleted, "path1", "file1")); |
131 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
132 | 79f92570 | Panagiotis Kanavos | |
133 | 79f92570 | Panagiotis Kanavos | Assert.That(events[@"path1\file1"].Select(arg => arg.ChangeType), Is.EquivalentTo(new[] { WatcherChangeTypes.Deleted })); |
134 | 79f92570 | Panagiotis Kanavos | } |
135 | 79f92570 | Panagiotis Kanavos | |
136 | 79f92570 | Panagiotis Kanavos | [Test] |
137 | 79f92570 | Panagiotis Kanavos | public void TestCreateChangeDeleteSequence() |
138 | 79f92570 | Panagiotis Kanavos | { |
139 | 79f92570 | Panagiotis Kanavos | Dictionary<string, FileSystemEventArgs[]> events = null; |
140 | 79f92570 | Panagiotis Kanavos | var batch = new FileEventIdleBatch(100, dict => events = dict); |
141 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Created, "path1", "file1")); |
142 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
143 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Deleted, "path1", "file1")); |
144 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
145 | 79f92570 | Panagiotis Kanavos | |
146 | 79f92570 | Panagiotis Kanavos | Assert.That(events.ContainsKey("path1\\file1"), Is.False); |
147 | 79f92570 | Panagiotis Kanavos | } |
148 | 79f92570 | Panagiotis Kanavos | |
149 | 79f92570 | Panagiotis Kanavos | [Test] |
150 | 79f92570 | Panagiotis Kanavos | public void TestCreateDeleteCreateSequence() |
151 | 79f92570 | Panagiotis Kanavos | { |
152 | 79f92570 | Panagiotis Kanavos | Dictionary<string, FileSystemEventArgs[]> events = null; |
153 | 79f92570 | Panagiotis Kanavos | var batch = new FileEventIdleBatch(100, dict => events = dict); |
154 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Created, "path1", "file1")); |
155 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
156 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Deleted, "path1", "file1")); |
157 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Created, "path1", "file1")); |
158 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
159 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
160 | 79f92570 | Panagiotis Kanavos | |
161 | 79f92570 | Panagiotis Kanavos | Assert.That(events[@"path1\file1"].Select(arg => arg.ChangeType), Is.EquivalentTo(new[] { WatcherChangeTypes.Created })); |
162 | 79f92570 | Panagiotis Kanavos | } |
163 | 79f92570 | Panagiotis Kanavos | |
164 | 79f92570 | Panagiotis Kanavos | public void TestCreateCreateSequence() |
165 | 79f92570 | Panagiotis Kanavos | { |
166 | 79f92570 | Panagiotis Kanavos | Dictionary<string, FileSystemEventArgs[]> events = null; |
167 | 79f92570 | Panagiotis Kanavos | var batch = new FileEventIdleBatch(100, dict => events = dict); |
168 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Created, "path1", "file1")); |
169 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
170 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Created, "path1", "file2")); |
171 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file2")); |
172 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
173 | 79f92570 | Panagiotis Kanavos | |
174 | 79f92570 | Panagiotis Kanavos | Assert.That(events[@"path1\file1"].Select(arg => arg.ChangeType), Is.EquivalentTo(new[] { WatcherChangeTypes.Created })); |
175 | 79f92570 | Panagiotis Kanavos | Assert.That(events[@"path1\file2"].Select(arg => arg.ChangeType), Is.EquivalentTo(new[] { WatcherChangeTypes.Created })); |
176 | 79f92570 | Panagiotis Kanavos | } |
177 | 79f92570 | Panagiotis Kanavos | |
178 | 79f92570 | Panagiotis Kanavos | [Test] |
179 | 79f92570 | Panagiotis Kanavos | public void TestCreateRenameSequence() |
180 | 79f92570 | Panagiotis Kanavos | { |
181 | 79f92570 | Panagiotis Kanavos | Dictionary<string, FileSystemEventArgs[]> events = null; |
182 | 79f92570 | Panagiotis Kanavos | var batch = new FileEventIdleBatch(100, dict => events = dict); |
183 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Created, "path1", "file1")); |
184 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
185 | 79f92570 | Panagiotis Kanavos | batch.Post(new RenamedEventArgs(WatcherChangeTypes.Renamed, "path1", "file2", "file1")); |
186 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
187 | 79f92570 | Panagiotis Kanavos | |
188 | 79f92570 | Panagiotis Kanavos | Assert.That(events.ContainsKey("path1\\file1"), Is.False); |
189 | 79f92570 | Panagiotis Kanavos | var changes = events[@"path1\file2"]; |
190 | 79f92570 | Panagiotis Kanavos | Assert.That(changes.Length,Is.EqualTo(1)); |
191 | 79f92570 | Panagiotis Kanavos | var change = changes[0]; |
192 | 79f92570 | Panagiotis Kanavos | Assert.That(change.ChangeType, Is.EqualTo(WatcherChangeTypes.Created)); |
193 | 79f92570 | Panagiotis Kanavos | Assert.That(change.FullPath,Is.EqualTo("path1\\file2")); |
194 | 79f92570 | Panagiotis Kanavos | } |
195 | 79f92570 | Panagiotis Kanavos | |
196 | 79f92570 | Panagiotis Kanavos | [Test] |
197 | 79f92570 | Panagiotis Kanavos | public void TestRenameChangeSequence() |
198 | 79f92570 | Panagiotis Kanavos | { |
199 | 79f92570 | Panagiotis Kanavos | Dictionary<string, FileSystemEventArgs[]> events = null; |
200 | 79f92570 | Panagiotis Kanavos | var batch = new FileEventIdleBatch(100, dict => events = dict); |
201 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
202 | 79f92570 | Panagiotis Kanavos | batch.Post(new RenamedEventArgs(WatcherChangeTypes.Renamed, "path1", "file2","file1")); |
203 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file2")); |
204 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
205 | 79f92570 | Panagiotis Kanavos | |
206 | 79f92570 | Panagiotis Kanavos | Assert.That(events.ContainsKey("path1\\file1"),Is.False); |
207 | 79f92570 | Panagiotis Kanavos | Assert.That(events["path1\\file2"].Select(arg => arg.ChangeType), Is.EquivalentTo(new[] { WatcherChangeTypes.Renamed, WatcherChangeTypes.Changed })); |
208 | 79f92570 | Panagiotis Kanavos | } |
209 | 79f92570 | Panagiotis Kanavos | |
210 | 79f92570 | Panagiotis Kanavos | [Test] |
211 | 79f92570 | Panagiotis Kanavos | public void TestCreateRenameChangeSequence() |
212 | 79f92570 | Panagiotis Kanavos | { |
213 | 79f92570 | Panagiotis Kanavos | Dictionary<string, FileSystemEventArgs[]> events = null; |
214 | 79f92570 | Panagiotis Kanavos | var batch = new FileEventIdleBatch(100, dict => events = dict); |
215 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Created, "path1", "file1")); |
216 | 79f92570 | Panagiotis Kanavos | batch.Post(new RenamedEventArgs(WatcherChangeTypes.Renamed, "path1", "file2","file1")); |
217 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file2")); |
218 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
219 | 79f92570 | Panagiotis Kanavos | |
220 | 79f92570 | Panagiotis Kanavos | Assert.That(events.ContainsKey("path1\\file1"), Is.False); |
221 | 79f92570 | Panagiotis Kanavos | var changes = events["path1\\file2"]; |
222 | 79f92570 | Panagiotis Kanavos | Assert.That(changes.Length, Is.EqualTo(1)); |
223 | 79f92570 | Panagiotis Kanavos | var change = changes[0]; |
224 | 79f92570 | Panagiotis Kanavos | Assert.That(change.ChangeType, Is.EqualTo(WatcherChangeTypes.Created)); |
225 | 79f92570 | Panagiotis Kanavos | Assert.That(change.FullPath, Is.EqualTo(@"path1\file2")); |
226 | 79f92570 | Panagiotis Kanavos | |
227 | 79f92570 | Panagiotis Kanavos | } |
228 | 79f92570 | Panagiotis Kanavos | |
229 | 79f92570 | Panagiotis Kanavos | [Test] |
230 | 79f92570 | Panagiotis Kanavos | public void TestCreateRenameChangeDeleteSequence() |
231 | 79f92570 | Panagiotis Kanavos | { |
232 | 79f92570 | Panagiotis Kanavos | Dictionary<string, FileSystemEventArgs[]> events = null; |
233 | 79f92570 | Panagiotis Kanavos | var batch = new FileEventIdleBatch(100, dict => events = dict); |
234 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Created, "path1", "file1")); |
235 | 79f92570 | Panagiotis Kanavos | batch.Post(new RenamedEventArgs(WatcherChangeTypes.Renamed, "path1", "file2","file1")); |
236 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file2")); |
237 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Deleted, "path1", "file2")); |
238 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
239 | 79f92570 | Panagiotis Kanavos | |
240 | 79f92570 | Panagiotis Kanavos | Assert.That(events.ContainsKey("path1\\file1"), Is.False); |
241 | 79f92570 | Panagiotis Kanavos | Assert.That(events.ContainsKey("path1\\file2"), Is.False); |
242 | 79f92570 | Panagiotis Kanavos | |
243 | 79f92570 | Panagiotis Kanavos | } |
244 | 79f92570 | Panagiotis Kanavos | |
245 | 79f92570 | Panagiotis Kanavos | [Test] |
246 | 79f92570 | Panagiotis Kanavos | public void TestCreateRenameOtherSequence() |
247 | 79f92570 | Panagiotis Kanavos | { |
248 | 79f92570 | Panagiotis Kanavos | Dictionary<string, FileSystemEventArgs[]> events = null; |
249 | 79f92570 | Panagiotis Kanavos | var batch = new FileEventIdleBatch(100,dict=>events=dict); |
250 | 79f92570 | Panagiotis Kanavos | |
251 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Created, "path1", "file1")); |
252 | 79f92570 | Panagiotis Kanavos | batch.Post(new FileSystemEventArgs(WatcherChangeTypes.Changed, "path1", "file1")); |
253 | 79f92570 | Panagiotis Kanavos | batch.Post(new RenamedEventArgs(WatcherChangeTypes.Renamed, "path1", "file3","file2")); |
254 | 79f92570 | Panagiotis Kanavos | Thread.Sleep(500); |
255 | 79f92570 | Panagiotis Kanavos | |
256 | 79f92570 | Panagiotis Kanavos | |
257 | 79f92570 | Panagiotis Kanavos | Assert.That(events.ContainsKey("path1\\file1"),Is.True); |
258 | 79f92570 | Panagiotis Kanavos | Assert.That(events.ContainsKey("path1\\file2"), Is.False); |
259 | 79f92570 | Panagiotis Kanavos | Assert.That(events[@"path1\file3"].Select(arg => arg.ChangeType), Is.EquivalentTo(new[] { WatcherChangeTypes.Renamed })); |
260 | 79f92570 | Panagiotis Kanavos | } |
261 | 79f92570 | Panagiotis Kanavos | } |
262 | 79f92570 | Panagiotis Kanavos | } |