public void GitIgnoreParser_IsIgnored_ReturnsFalseWhenNoGitRepositoryIsFound(string relativePath) { // Arrange gitignore = new GitIgnoreParser(); var directory = Path.GetTempPath(); // Act gitignore.Directory = directory; var isIgnored = gitignore.IsIgnored(relativePath); Assert.False(isIgnored); }
public void GitIgnoreParser_IsIgnored_ReturnsTheCorrectValueForIgnoredFiles() { // Arrange var gitRoot = InitializeTempGitRepository(); using (var writer = File.CreateText(Path.Join(gitRoot, ".gitignore"))) { writer.Write(@" # Advanced patterns [Bb]in/ [Bb]uild[Ll]og.* [Ll]og/ *.pyc **/Properties/launchSettings.json *.tmp.*.js "); } gitignore = new GitIgnoreParser() { Directory = gitRoot, }; // Assert Assert.True(gitignore.IsIgnored("Bin/somefile.dll")); Assert.True(gitignore.IsIgnored("bin/somefile.dll")); Assert.True(gitignore.IsIgnored("something/bin/something/test.dll")); Assert.True(gitignore.IsIgnored("Buildlog.something.txt")); Assert.True(gitignore.IsIgnored("src/docker/watcher.pyc")); Assert.True(gitignore.IsIgnored("in/some/nested/folder/Properties/launchSettings.json")); Assert.True(gitignore.IsIgnored("test.tmp.backup.js")); Assert.False(gitignore.IsIgnored("src/docker/watcher.py")); Assert.False(gitignore.IsIgnored("Blog/something/something.c")); Assert.False(gitignore.IsIgnored("test/Analog/something.c")); }
public void GitIgnoreParser_IsIgnored_ReturnsCorrectValueEvenIfGitRootIsInSomeParentDirectory(string path) { // Arrange var gitRoot = InitializeTempGitRepository(); var full = Path.Join(gitRoot, path); var info = Directory.CreateDirectory(full); using (var writer = File.CreateText(Path.Join(gitRoot, ".gitignore"))) { writer.Write("*.cs\n"); } gitignore = new GitIgnoreParser() { Directory = full, }; // Act var result = gitignore.IsIgnored("some/ignored/file.cs"); // Assert Assert.True(result); }