public void Rewrite_FileInSubdir()
        {
            var cvs = new FileContent("dir1/dir2/.cvsignore", MakeContents("file1"));
            var git = CvsIgnoreFile.Rewrite(cvs);

            Assert.AreEqual(git.Name, "dir1/dir2/.gitignore");
        }
        public void Rewrite_DeletedFile()
        {
            var cvs = FileContent.CreateDeadFile(".cvsignore");

            Assert.IsTrue(cvs.IsDead, ".cvsignore file is dead");
            var git = CvsIgnoreFile.Rewrite(cvs);

            Assert.IsTrue(git.IsDead, ".gitignore file is dead");
        }
        public void Rewrite_WildcardEntry()
        {
            var cvs = new FileContent("dir1/dir2/.cvsignore", MakeContents("file*.txt"));
            var git = CvsIgnoreFile.Rewrite(cvs);

            var contents = GetContents(git);

            Assert.AreEqual(contents.Length, 1);
            Assert.AreEqual(contents[0], "/file*.txt");
        }
        public void Rewrite_SpaceInFilename()
        {
            var cvs = new FileContent(".cvsignore", MakeContents(@"file\ with\ spaces.txt"));
            var git = CvsIgnoreFile.Rewrite(cvs);

            Assert.AreEqual(git.Name, ".gitignore");
            var contents = GetContents(git);

            Assert.AreEqual(contents.Length, 1);
            Assert.AreEqual(contents[0], @"/file\ with\ spaces.txt");
        }
        public void Rewrite_BlankLine()
        {
            var cvs = new FileContent(".cvsignore", MakeContents("file1", "", "file2"));
            var git = CvsIgnoreFile.Rewrite(cvs);

            var contents = GetContents(git);

            Assert.AreEqual(contents.Length, 2);
            Assert.AreEqual(contents[0], "/file1");
            Assert.AreEqual(contents[1], "/file2");
        }
        public void Rewrite_NegatedEntry()
        {
            var cvs = new FileContent("dir1/dir2/.cvsignore", MakeContents("file1", "!file2"));
            var git = CvsIgnoreFile.Rewrite(cvs);

            var contents = GetContents(git);

            Assert.AreEqual(contents.Length, 2);
            Assert.AreEqual(contents[0], "/file1");
            Assert.AreEqual(contents[1], "!/file2");
        }
        public void Rewrite_EscapedBackslash()
        {
            var cvs = new FileContent(".cvsignore", MakeContents(@"dir\\file.txt"));
            var git = CvsIgnoreFile.Rewrite(cvs);

            Assert.AreEqual(git.Name, ".gitignore");
            var contents = GetContents(git);

            Assert.AreEqual(contents.Length, 1);
            Assert.AreEqual(contents[0], @"/dir\\file.txt");
        }
        public void Rewrite_SimpleFileNames()
        {
            var cvs = new FileContent(".cvsignore", MakeContents("file1", "file2"));
            var git = CvsIgnoreFile.Rewrite(cvs);

            Assert.AreEqual(git.Name, ".gitignore");
            var contents = GetContents(git);

            Assert.AreEqual(contents.Length, 2);
            Assert.AreEqual(contents[0], "/file1");
            Assert.AreEqual(contents[1], "/file2");
        }
        public void Rewrite_MultipleSpacesBetween()
        {
            var cvs = new FileContent(".cvsignore", MakeContents("file1.txt \t file2.txt"));
            var git = CvsIgnoreFile.Rewrite(cvs);

            Assert.AreEqual(git.Name, ".gitignore");
            var contents = GetContents(git);

            Assert.AreEqual(contents.Length, 2);
            Assert.AreEqual(contents[0], "/file1.txt");
            Assert.AreEqual(contents[1], "/file2.txt");
        }
        public void Rewrite_MultipleEntriesPerLine()
        {
            var cvs = new FileContent(".cvsignore", MakeContents("file1 file2", "file3"));
            var git = CvsIgnoreFile.Rewrite(cvs);

            Assert.AreEqual(git.Name, ".gitignore");
            var contents = GetContents(git);

            Assert.AreEqual(contents.Length, 3);
            Assert.AreEqual(contents[0], "/file1");
            Assert.AreEqual(contents[1], "/file2");
            Assert.AreEqual(contents[2], "/file3");
        }
        public void IsIgnoreFile_MixedCase()
        {
            var f = new FileContent("dir/.CVSignore", FileContentData.Empty);

            Assert.IsTrue(CvsIgnoreFile.IsIgnoreFile(f));
        }
        public void IsIgnoreFile_FileInRoot()
        {
            var f = new FileContent(".cvsignore", FileContentData.Empty);

            Assert.IsTrue(CvsIgnoreFile.IsIgnoreFile(f));
        }
        public void IsIgnoreFile_MatchesLowerCase()
        {
            var f = new FileContent("dir/.cvsignore", FileContentData.Empty);

            Assert.IsTrue(CvsIgnoreFile.IsIgnoreFile(f));
        }