1+ using Microsoft . VisualStudio . TestTools . UnitTesting ;
2+ using PCL . Core . Utils . Validate ;
3+
4+ namespace PCL . Core . Test . Validate ;
5+
6+ [ TestClass ]
7+ public class FileNameValidatorTest
8+ {
9+ // ReSharper disable once UnusedAutoPropertyAccessor.Global
10+ public TestContext TestContext { get ; set ; }
11+
12+ [ TestMethod ]
13+ [ DataRow ( "foobar.txt" , true ) ]
14+ [ DataRow ( "CON.tar.gz" , true ) ]
15+ [ DataRow ( "LPT²" , false ) ]
16+ [ DataRow ( " Test" , false ) ]
17+ [ DataRow ( "?foo." , false ) ]
18+ [ DataRow ( """\/:*?"<>|""" , false ) ]
19+ [ DataRow ( "PCLCE.exe." , false ) ]
20+ [ DataRow ( "我落泪情绪零~1.MP3" , false ) ]
21+ [ DataRow ( "关注洛天依LuoTianyi0712谢谢喵!!!" , true ) ]
22+ public void TestFileNameValidate ( string fileName , bool expected )
23+ {
24+ var validator = new FileNameValidator ( ) ;
25+ var result = validator . Validate ( fileName ) ;
26+ if ( ! result . IsValid )
27+ {
28+ foreach ( var error in result . Errors )
29+ {
30+ TestContext . WriteLine ( error . ErrorMessage ) ;
31+ }
32+ }
33+ Assert . AreEqual ( expected , result . IsValid ) ;
34+ }
35+
36+ [ TestMethod ]
37+ [ DataRow ( "explorer.exe" , false ) ]
38+ [ DataRow ( "notepad.exe" , false ) ]
39+ [ DataRow ( "foobar.txt" , true ) ]
40+ [ DataRow ( "关注初音未来初音ミクHatsuneMiku0831谢谢喵!!!" , true ) ]
41+ public void TestFileNameValidateWithParentFolder ( string fileName , bool expected )
42+ {
43+ var validator = new FileNameValidator ( "C:\\ Windows" ) ;
44+ var result = validator . Validate ( fileName ) ;
45+ if ( ! result . IsValid )
46+ {
47+ foreach ( var error in result . Errors )
48+ {
49+ TestContext . WriteLine ( error . ErrorMessage ) ;
50+ }
51+ }
52+ Assert . AreEqual ( expected , result . IsValid ) ;
53+ }
54+ }
0 commit comments