using UnitTestSharp; namespace Glass.UnitTests { public class FileFilterTests : TestFixture { public class AllFilesTests : TestFixture { public void Always_HasNoExtensions() { CheckNull(FileFilter.AllFiles.Extensions); } } public class MatchesTests : TestFixture { public void NoExtensions_MatchesAnything() { CheckTrue(FileFilter.AllFiles.Matches("anything.at.all")); } public void DefaultFilter_MatchesAnything() { CheckTrue(default(FileFilter).Matches("anything")); } public void NameEndingInAnExtension_Matches() { var filter = new FileFilter("Text files", new[] { ".txt" }); CheckTrue(filter.Matches("notes.txt")); } public void CaseIsIgnored() { var filter = new FileFilter("Text files", new[] { ".txt" }); CheckTrue(filter.Matches("NOTES.TXT")); } public void NameEndingInAnotherExtension_DoesNotMatch() { var filter = new FileFilter("Text files", new[] { ".txt" }); CheckFalse(filter.Matches("notes.md")); } public void NameWithoutAnExtension_DoesNotMatch() { var filter = new FileFilter("Text files", new[] { ".txt" }); CheckFalse(filter.Matches("notes")); } public void ExtensionInTheMiddleOfTheName_DoesNotMatch() { var filter = new FileFilter("Text files", new[] { ".txt" }); CheckFalse(filter.Matches("notes.txt.bak")); } public void AnyOfSeveralExtensions_Matches() { var filter = new FileFilter("Documents", new[] { ".txt", ".md" }); CheckTrue(filter.Matches("readme.md")); } public void NoneOfSeveralExtensions_DoesNotMatch() { var filter = new FileFilter("Documents", new[] { ".txt", ".md" }); CheckFalse(filter.Matches("image.png")); } } } }