Example #1
0
        public void Setup()
        {
            _gitFile       = Path.Combine(_workingDir, ".git");
            _gitWorkingDir = _gitFile.EnsureTrailingPathSeparator();
            _indexLockFile = Path.Combine(_gitWorkingDir, IndexLock);

            _file       = Substitute.For <FileBase>();
            _directory  = Substitute.For <DirectoryBase>();
            _fileSystem = Substitute.For <IFileSystem>();
            _fileSystem.Directory.Returns(_directory);
            _fileSystem.File.Returns(_file);

            _module = Substitute.For <IGitModule>();
            _module.WorkingDir.Returns(_workingDir);

            _gitDirectoryResolver = Substitute.For <IGitDirectoryResolver>();
            _gitDirectoryResolver.Resolve(_workingDir).Returns(_gitWorkingDir);

            _manager = new IndexLockManager(_module, _gitDirectoryResolver, _fileSystem);
        }
Example #2
0
        public void Resolve_submodule_real_filesystem()
        {
            using var helper = new GitModuleTestHelper();
            helper.CreateFile(helper.Module.WorkingDir, ".gitmodules", @"[submodule ""Externals/NBug""]
    path = Externals/NBug
    url = https://github.com/gitextensions/NBug.git
[submodule ""Externals/Git.hub""]
    path = Externals/Git.hub
    url = https://github.com/gitextensions/Git.hub.gitk");

            var submoduleGitHub = Path.Combine(helper.Module.WorkingDir, "Externals", "Git.hub");
            var submoduleNBug   = Path.Combine(helper.Module.WorkingDir, "Externals", "NBug");
            var submoduleGitHubWorkingDirGitDir = Path.Combine(helper.Module.WorkingDirGitDir, "modules", "Externals", "Git.hub");
            var submoduleNbugWorkingDirGitDir   = Path.Combine(helper.Module.WorkingDirGitDir, "modules", "Externals", "NBug");

            helper.CreateFile(submoduleGitHub, ".git", "gitdir: ../../.git/modules/Externals/Git.hub");
            helper.CreateFile(submoduleNBug, ".git", "gitdir: ../../.git/modules/Externals/NBug");
            helper.CreateFile(helper.Module.WorkingDirGitDir, IndexLock, "");
            helper.CreateFile(submoduleGitHubWorkingDirGitDir, IndexLock, "");

            _manager = new IndexLockManager(helper.Module);

            var indexLock = Path.Combine(helper.Module.WorkingDirGitDir, IndexLock);

            File.Exists(indexLock).Should().BeTrue();
            var gitHubIndexLock = Path.Combine(submoduleGitHubWorkingDirGitDir, IndexLock);

            File.Exists(gitHubIndexLock).Should().BeTrue();
            var nbugIndexLock = Path.Combine(submoduleNbugWorkingDirGitDir, IndexLock);

            File.Exists(nbugIndexLock).Should().BeFalse();

            _manager.UnlockIndex(true);

            File.Exists(indexLock).Should().BeFalse();
            File.Exists(gitHubIndexLock).Should().BeFalse();
            File.Exists(nbugIndexLock).Should().BeFalse();
        }