Statistics
| Branch: | Revision:

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
}