root / trunk / Pithos.Core.Test / WorkflowFileStatusTest.cs @ b449fa49
History | View | Annotate | Download (6.3 kB)
1 | d78cbf09 | Panagiotis Kanavos | using System; |
---|---|---|---|
2 | d78cbf09 | Panagiotis Kanavos | using System.Collections.Generic; |
3 | d78cbf09 | Panagiotis Kanavos | using System.Linq; |
4 | d78cbf09 | Panagiotis Kanavos | using System.Text; |
5 | d78cbf09 | Panagiotis Kanavos | using NUnit.Framework; |
6 | d78cbf09 | Panagiotis Kanavos | |
7 | d78cbf09 | Panagiotis Kanavos | |
8 | d78cbf09 | Panagiotis Kanavos | namespace Pithos.Core.Test |
9 | d78cbf09 | Panagiotis Kanavos | { |
10 | d78cbf09 | Panagiotis Kanavos | [TestFixture] |
11 | d78cbf09 | Panagiotis Kanavos | public class WorkflowFileStatusTest |
12 | d78cbf09 | Panagiotis Kanavos | { |
13 | d78cbf09 | Panagiotis Kanavos | private MockSettings _settings; |
14 | d78cbf09 | Panagiotis Kanavos | private MockStatusChecker _statusChecker; |
15 | d78cbf09 | Panagiotis Kanavos | |
16 | d78cbf09 | Panagiotis Kanavos | [SetUp] |
17 | d78cbf09 | Panagiotis Kanavos | public void SetUp() |
18 | d78cbf09 | Panagiotis Kanavos | { |
19 | d78cbf09 | Panagiotis Kanavos | _settings = new MockSettings |
20 | d78cbf09 | Panagiotis Kanavos | { |
21 | d78cbf09 | Panagiotis Kanavos | PithosPath = @"e:\Pithos", |
22 | d78cbf09 | Panagiotis Kanavos | IconsPath = @"C:\Program Files\Common Files\TortoiseOverlays\icons\XPStyle" |
23 | d78cbf09 | Panagiotis Kanavos | }; |
24 | d78cbf09 | Panagiotis Kanavos | _statusChecker = new MockStatusChecker { Settings = _settings }; |
25 | d78cbf09 | Panagiotis Kanavos | } |
26 | d78cbf09 | Panagiotis Kanavos | |
27 | d78cbf09 | Panagiotis Kanavos | [Test] |
28 | d78cbf09 | Panagiotis Kanavos | public void TestSetFileStatusCreated() |
29 | d78cbf09 | Panagiotis Kanavos | { |
30 | d78cbf09 | Panagiotis Kanavos | PithosWorkflow workflow = new PithosWorkflow { Settings = _settings, StatusKeeper = _statusChecker }; |
31 | d78cbf09 | Panagiotis Kanavos | |
32 | d78cbf09 | Panagiotis Kanavos | var path = @"e:\pithos\0File1.txt"; |
33 | d78cbf09 | Panagiotis Kanavos | workflow.SetFileStatus(path, FileStatus.Created); |
34 | d78cbf09 | Panagiotis Kanavos | var status = _statusChecker.GetFileStatus(path); |
35 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(FileStatus.Created, status); |
36 | d78cbf09 | Panagiotis Kanavos | |
37 | d78cbf09 | Panagiotis Kanavos | } |
38 | d78cbf09 | Panagiotis Kanavos | |
39 | d78cbf09 | Panagiotis Kanavos | [Test] |
40 | d78cbf09 | Panagiotis Kanavos | public void TestSetFileStatusCreatedTransitions() |
41 | d78cbf09 | Panagiotis Kanavos | { |
42 | d78cbf09 | Panagiotis Kanavos | IPithosWorkflow workflow = new PithosWorkflow { Settings = _settings, StatusKeeper = _statusChecker }; |
43 | d78cbf09 | Panagiotis Kanavos | |
44 | d78cbf09 | Panagiotis Kanavos | var path = @"e:\pithos\0File1.txt"; |
45 | d78cbf09 | Panagiotis Kanavos | |
46 | d78cbf09 | Panagiotis Kanavos | var initialStatus = FileStatus.Created; |
47 | d78cbf09 | Panagiotis Kanavos | FileStatus[,] transitions = { { FileStatus.Modified, FileStatus.Created }, |
48 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Created, FileStatus.Created }, |
49 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Deleted, FileStatus.Deleted }, |
50 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Renamed, FileStatus.Renamed }, |
51 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Unchanged, FileStatus.Unchanged }, |
52 | d78cbf09 | Panagiotis Kanavos | }; |
53 | d78cbf09 | Panagiotis Kanavos | |
54 | d78cbf09 | Panagiotis Kanavos | |
55 | d78cbf09 | Panagiotis Kanavos | TestTransitions(transitions, workflow, path, initialStatus); |
56 | d78cbf09 | Panagiotis Kanavos | } |
57 | d78cbf09 | Panagiotis Kanavos | |
58 | d78cbf09 | Panagiotis Kanavos | [Test] |
59 | d78cbf09 | Panagiotis Kanavos | public void TestSetFileStatusModifiedTransitions() |
60 | d78cbf09 | Panagiotis Kanavos | { |
61 | d78cbf09 | Panagiotis Kanavos | IPithosWorkflow workflow = new PithosWorkflow { Settings = _settings, StatusKeeper = _statusChecker }; |
62 | d78cbf09 | Panagiotis Kanavos | |
63 | d78cbf09 | Panagiotis Kanavos | var path = @"e:\pithos\0File1.txt"; |
64 | d78cbf09 | Panagiotis Kanavos | |
65 | d78cbf09 | Panagiotis Kanavos | var initialStatus = FileStatus.Modified; |
66 | d78cbf09 | Panagiotis Kanavos | FileStatus[,] transitions = { { FileStatus.Modified, FileStatus.Modified }, |
67 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Created, FileStatus.Modified }, |
68 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Deleted, FileStatus.Deleted }, |
69 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Renamed, FileStatus.Renamed }, |
70 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Unchanged, FileStatus.Unchanged }, |
71 | d78cbf09 | Panagiotis Kanavos | }; |
72 | d78cbf09 | Panagiotis Kanavos | |
73 | d78cbf09 | Panagiotis Kanavos | |
74 | d78cbf09 | Panagiotis Kanavos | TestTransitions(transitions, workflow, path, initialStatus); |
75 | d78cbf09 | Panagiotis Kanavos | } |
76 | d78cbf09 | Panagiotis Kanavos | |
77 | d78cbf09 | Panagiotis Kanavos | [Test] |
78 | d78cbf09 | Panagiotis Kanavos | public void TestSetFileStatusUnchangedTransitions() |
79 | d78cbf09 | Panagiotis Kanavos | { |
80 | d78cbf09 | Panagiotis Kanavos | IPithosWorkflow workflow = new PithosWorkflow { Settings = _settings, StatusKeeper = _statusChecker }; |
81 | d78cbf09 | Panagiotis Kanavos | |
82 | d78cbf09 | Panagiotis Kanavos | var path = @"e:\pithos\0File1.txt"; |
83 | d78cbf09 | Panagiotis Kanavos | |
84 | d78cbf09 | Panagiotis Kanavos | var initialStatus = FileStatus.Unchanged; |
85 | d78cbf09 | Panagiotis Kanavos | FileStatus[,] transitions = { { FileStatus.Modified, FileStatus.Modified }, |
86 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Created, FileStatus.Created }, |
87 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Deleted, FileStatus.Deleted }, |
88 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Renamed, FileStatus.Renamed }, |
89 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Unchanged, FileStatus.Unchanged }, |
90 | d78cbf09 | Panagiotis Kanavos | }; |
91 | d78cbf09 | Panagiotis Kanavos | |
92 | d78cbf09 | Panagiotis Kanavos | |
93 | d78cbf09 | Panagiotis Kanavos | TestTransitions(transitions, workflow, path, initialStatus); |
94 | d78cbf09 | Panagiotis Kanavos | } |
95 | d78cbf09 | Panagiotis Kanavos | |
96 | d78cbf09 | Panagiotis Kanavos | [Test] |
97 | d78cbf09 | Panagiotis Kanavos | public void TestSetFileStatusDeletedTransitions() |
98 | d78cbf09 | Panagiotis Kanavos | { |
99 | d78cbf09 | Panagiotis Kanavos | IPithosWorkflow workflow = new PithosWorkflow { Settings = _settings, StatusKeeper = _statusChecker }; |
100 | d78cbf09 | Panagiotis Kanavos | |
101 | d78cbf09 | Panagiotis Kanavos | var path = @"e:\pithos\0File1.txt"; |
102 | d78cbf09 | Panagiotis Kanavos | |
103 | d78cbf09 | Panagiotis Kanavos | var initialStatus = FileStatus.Deleted; |
104 | d78cbf09 | Panagiotis Kanavos | FileStatus[,] transitions = { { FileStatus.Modified, FileStatus.Deleted }, |
105 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Created, FileStatus.Deleted }, |
106 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Deleted, FileStatus.Deleted }, |
107 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Renamed, FileStatus.Deleted }, |
108 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Unchanged, FileStatus.Deleted }, |
109 | d78cbf09 | Panagiotis Kanavos | }; |
110 | d78cbf09 | Panagiotis Kanavos | |
111 | d78cbf09 | Panagiotis Kanavos | |
112 | d78cbf09 | Panagiotis Kanavos | TestTransitions(transitions, workflow, path, initialStatus); |
113 | d78cbf09 | Panagiotis Kanavos | } |
114 | d78cbf09 | Panagiotis Kanavos | |
115 | d78cbf09 | Panagiotis Kanavos | [Test] |
116 | d78cbf09 | Panagiotis Kanavos | public void TestSetFileStatusRenamedTransitions() |
117 | d78cbf09 | Panagiotis Kanavos | { |
118 | d78cbf09 | Panagiotis Kanavos | IPithosWorkflow workflow = new PithosWorkflow { Settings = _settings, StatusKeeper = _statusChecker }; |
119 | d78cbf09 | Panagiotis Kanavos | |
120 | d78cbf09 | Panagiotis Kanavos | var path = @"e:\pithos\0File1.txt"; |
121 | d78cbf09 | Panagiotis Kanavos | |
122 | d78cbf09 | Panagiotis Kanavos | var initialStatus = FileStatus.Renamed; |
123 | d78cbf09 | Panagiotis Kanavos | FileStatus[,] transitions = { { FileStatus.Modified, FileStatus.Modified }, |
124 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Created, FileStatus.Renamed }, |
125 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Deleted, FileStatus.Deleted }, |
126 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Renamed, FileStatus.Renamed }, |
127 | d78cbf09 | Panagiotis Kanavos | { FileStatus.Unchanged, FileStatus.Unchanged }, |
128 | d78cbf09 | Panagiotis Kanavos | }; |
129 | d78cbf09 | Panagiotis Kanavos | |
130 | d78cbf09 | Panagiotis Kanavos | |
131 | d78cbf09 | Panagiotis Kanavos | TestTransitions(transitions, workflow, path, initialStatus); |
132 | d78cbf09 | Panagiotis Kanavos | } |
133 | d78cbf09 | Panagiotis Kanavos | |
134 | d78cbf09 | Panagiotis Kanavos | private void TestTransitions(FileStatus[,] transitions, IPithosWorkflow workflow, string path, FileStatus initialStatus) |
135 | d78cbf09 | Panagiotis Kanavos | { |
136 | d78cbf09 | Panagiotis Kanavos | workflow.SetFileStatus(path, initialStatus); |
137 | d78cbf09 | Panagiotis Kanavos | var status = _statusChecker.GetFileStatus(path); |
138 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(initialStatus, status, "Setting new file to {0}", status); |
139 | d78cbf09 | Panagiotis Kanavos | for (int i = 0; i < transitions.GetLength(0); i++) |
140 | d78cbf09 | Panagiotis Kanavos | { |
141 | d78cbf09 | Panagiotis Kanavos | workflow.ClearFileStatus(path); |
142 | d78cbf09 | Panagiotis Kanavos | status = _statusChecker.GetFileStatus(path); |
143 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(FileStatus.Missing, status, "Clear status"); |
144 | d78cbf09 | Panagiotis Kanavos | |
145 | d78cbf09 | Panagiotis Kanavos | workflow.SetFileStatus(path, initialStatus); |
146 | d78cbf09 | Panagiotis Kanavos | |
147 | d78cbf09 | Panagiotis Kanavos | var transition = transitions[i, 0]; |
148 | d78cbf09 | Panagiotis Kanavos | var result = transitions[i, 1]; |
149 | d78cbf09 | Panagiotis Kanavos | workflow.SetFileStatus(path, transition); |
150 | d78cbf09 | Panagiotis Kanavos | status = _statusChecker.GetFileStatus(path); |
151 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(result, status, "Marking {0} as {1}", initialStatus, transition); |
152 | d78cbf09 | Panagiotis Kanavos | |
153 | d78cbf09 | Panagiotis Kanavos | } |
154 | d78cbf09 | Panagiotis Kanavos | } |
155 | d78cbf09 | Panagiotis Kanavos | } |
156 | d78cbf09 | Panagiotis Kanavos | } |