forked from acken/AutoTest.Net
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWatchValidatorTest.cs
More file actions
191 lines (169 loc) · 6.23 KB
/
Copy pathWatchValidatorTest.cs
File metadata and controls
191 lines (169 loc) · 6.23 KB
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using NUnit.Framework;
using AutoTest.Core.FileSystem;
using AutoTest.Core.Configuration;
using Rhino.Mocks;
namespace AutoTest.Test.Core.FileSystem
{
[TestFixture]
public class WatchValidatorTest
{
private WatchValidator _validator;
private IConfiguration _configuration;
[SetUp]
public void SetUp()
{
_configuration = MockRepository.GenerateMock<IConfiguration>();
_validator = new WatchValidator(_configuration);
}
[Test]
public void Should_return_true_if_normal_file()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_configuration.Stub(c => c.WatchIgnoreList).Return(new string[] {});
_validator
.ShouldPublish(Path.GetTempFileName())
.ShouldBeTrue();
}
[Test]
public void Should_invalidate_bin_debug()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_validator
.ShouldPublish(getInfo("something{0}bin{0}Debug{0}"))
.ShouldBeFalse();
}
[Test]
public void Should_invalidate_bin_debug_dir()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_validator
.ShouldPublish(getInfo("something{0}bin{0}Debug"))
.ShouldBeFalse();
}
[Test]
public void Should_invalidate_bin_release()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_validator
.ShouldPublish(getInfo("something{0}bin{0}Release{0}"))
.ShouldBeFalse();
}
[Test]
public void Should_invalidate_bin_x86()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_validator
.ShouldPublish(getInfo("something{0}bin{0}x86{0}"))
.ShouldBeFalse();
}
[Test]
public void Should_invalidate_obj_debug()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_validator
.ShouldPublish(getInfo("something{0}obj{0}Debug{0}"))
.ShouldBeFalse();
}
[Test]
public void Should_invalidate_obj_debug_dir()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_validator
.ShouldPublish(getInfo("something{0}obj{0}Debug"))
.ShouldBeFalse();
}
[Test]
public void Should_invalidate_obj_release()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_validator
.ShouldPublish(getInfo("something{0}obj{0}Release{0}"))
.ShouldBeFalse();
}
[Test]
public void Should_invalidate_obj_x86()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_validator
.ShouldPublish(getInfo("something{0}obj{0}x86{0}"))
.ShouldBeFalse();
}
[Test]
public void Should_invalidate_monos_filelistabsolute_file()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_validator.ShouldPublish(getInfo("something{0}obj{0}SomeProject.csproj.FileListAbsolute.txt"))
.ShouldBeFalse();
}
[Test]
public void Should_invalidate_monos_fileswrittenabsolute_file()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_validator.ShouldPublish(getInfo("something{0}obj{0}SomeProject.csproj.FilesWrittenAbsolute.txt"))
.ShouldBeFalse();
}
[Test]
public void Should_ignore_directory_with_pattern_name()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_configuration.Stub(c => c.WatchIgnoreList).Return(new string[] { "meh" });
_validator.ShouldPublish("/Somedirectory/meh/AndAnotherOne").ShouldBeFalse();
}
[Test]
public void Should_match_pattern_to_path_end()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_configuration.Stub(c => c.WatchIgnoreList).Return(new string[] { "xmloutput.xml" });
_validator.ShouldPublish("/Somedirectory/hoi/AndAnotherOne/xmloutput.xml").ShouldBeFalse();
}
[Test]
public void Should_match_sub_directories_through_glob()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_configuration.Stub(c => c.WatchIgnoreList).Return(new string[] { "myFolder/*" });
_validator.ShouldPublish("/Somedirectory/hoi/myFolder/somexmlfile.xml").ShouldBeFalse();
}
[Test]
public void Should_glob_case_sensitive()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_configuration.Stub(c => c.WatchIgnoreList).Return(new string[] { "myFolder/*" });
_validator.ShouldPublish("/Somedirectory/hoi/myfolder/somexmlfile.xml").ShouldBeTrue();
}
[Test]
public void Should_return_list_of_ignore_items()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_configuration.Stub(c => c.WatchIgnoreList).Return(new string[] { "myFolder/*", "whatever.txt", "*.bat" });
_validator.GetIgnorePatterns().ShouldEqual("myFolder/*|whatever.txt|*.bat");
}
[Test]
public void Should_respect_configuration_setting()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(false);
_configuration.Stub(c => c.WatchIgnoreList).Return(new string[] { "myFolder/*" });
_validator.ShouldPublish("/Somedirectory/hoi/myfolder/somexmlfile.xml").ShouldBeTrue();
}
[Test]
public void Should_not_consume_vs_suo_files()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_validator.ShouldPublish("/Somedirectory/hoi/myfolder/myproject.suo").ShouldBeFalse();
}
[Test]
public void Should_not_consume_vs_unmanagedregistration_cache()
{
_configuration.Stub(c => c.ShouldUseIgnoreLists).Return(true);
_validator.ShouldPublish("/Somedirectory/hoi/myfolder/myproject.csproj.UnmanagedRegistration.cache").ShouldBeFalse();
}
private string getInfo(string path)
{
return string.Format(path, Path.DirectorySeparatorChar);
}
}
}