Merge branch 'master' of \\\pk2010\Pithos\
[pithos-ms-client] / trunk / Pithos.Core.Test / StatusCheckerTest.cs
1 using System;
2 using System.Linq;
3 using Castle.ActiveRecord;
4 using NUnit.Framework;
5 using Pithos.Core.Agents;
6 using Pithos.Interfaces;
7
8 namespace Pithos.Core.Test
9 {
10     [TestFixture]
11     public class StatusCheckerTest
12     {
13         [Test]
14         public void TestFileCheck()
15         {
16
17             var files = new[] {Tuple.Create(@"e:\pithos\0File1.txt", FileOverlayStatus.Normal),
18                                      Tuple.Create(@"e:\pithos\0File2.txt", FileOverlayStatus.Conflict),
19                                      Tuple.Create(@"e:\pithos\0File3.txt", FileOverlayStatus.Modified),
20                                      Tuple.Create(@"e:\pithos\0File4.txt", FileOverlayStatus.Modified)
21                                     };
22
23             var checker = new MockStatusChecker();
24
25             foreach (var file in files)
26             {
27                 checker.SetFileOverlayStatus(file.Item1,file.Item2);
28             }
29
30             foreach (var file in files)
31             {
32
33                 var status = checker.GetFileOverlayStatus(file.Item1);                
34                 Assert.AreEqual(file.Item2,status);
35             }
36         }
37         
38         [Test]
39         public void TestFileRemoval()
40         {
41
42             var files = new[] {Tuple.Create(@"e:\pithos\0File1.txt", FileOverlayStatus.Normal),
43                                      Tuple.Create(@"e:\pithos\0File2.txt", FileOverlayStatus.Conflict),
44                                      Tuple.Create(@"e:\pithos\0File3.txt", FileOverlayStatus.Modified),
45                                      Tuple.Create(@"e:\pithos\0File4.txt", FileOverlayStatus.Modified)
46                                     };
47
48             var checker = new MockStatusChecker();
49
50             foreach (var file in files)
51             {
52                 checker.SetFileOverlayStatus(file.Item1,file.Item2);
53             }
54
55             checker.RemoveFileOverlayStatus(@"e:\pithos\0File3.txt");
56             var status = checker.GetFileOverlayStatus(@"e:\pithos\0File3.txt");                
57             Assert.AreEqual(FileOverlayStatus.Unversioned,status);
58             
59         }
60
61
62
63         [Test]
64         public void TestNonExistent()
65         {
66             var files = new[]
67                             {
68                                 Tuple.Create(@"e:\pithos\0File1.txt", FileOverlayStatus.Normal),
69                                 Tuple.Create(@"e:\pithos\0File2.txt", FileOverlayStatus.Conflict),
70                                 Tuple.Create(@"e:\pithos\0File3.txt", FileOverlayStatus.Modified),
71                                 Tuple.Create(@"e:\pithos\0File4.txt", FileOverlayStatus.Modified)
72                             };
73
74             var checker = new MockStatusChecker();
75
76             foreach (var file in files)
77             {
78                 checker.SetFileOverlayStatus(file.Item1, file.Item2);
79             }
80
81             
82                 var status = checker.GetFileOverlayStatus(@"e:\pithos\notexisting");
83             Assert.AreEqual(FileOverlayStatus.Unversioned,status);
84
85
86         }
87
88     }
89 }