示例#1
0
        public void Path_HandleNoTarget(string value, bool useEmptyData)
        {
            var expected   = _AllHitData;
            var hitManager = _hitManager;

            if (useEmptyData)
            {
                expected   = new List <HitData>();
                hitManager = _hitManagerEmpty;
            }

            var options = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = value
            };
            var testCmd = new ActionNameOrAlias(_repoPaths, options, hitManager);

            _info.Options = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = options.NameOrAlias
            };

            var origList = options.List;
            var result   = testCmd.Process(_info);

            Assert.False(result);

            hitManager.Received(0).GetHitList();
        }
示例#2
0
        public void Anything_selected_does_not_trigger_action_Name()
        {
            var options = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = "Plantagenet"
            };

            Anything_selected_does_not_trigger_action_base_test(options);
        }
示例#3
0
        public void Anything_selected_does_not_trigger_action_List()
        {
            var options = new GetGitChangeDirectoryCommandOptions {
                List = true
            };

            Anything_selected_does_not_trigger_action_base_test(options);
        }
示例#4
0
        public void Anything_selected_does_not_trigger_action_Alias()
        {
            var options = new GetGitChangeDirectoryCommandOptions {
                Alias = "Otoole"
            };

            Anything_selected_does_not_trigger_action_base_test(options);
        }
示例#5
0
        private void Anything_selected_does_not_trigger_action_base_test(GetGitChangeDirectoryCommandOptions options)
        {
            var testCmd = new ActionDefault(_repoPaths, options, _hitManager);

            var result = testCmd.Process(_info);

            Assert.False(result);
            _hitManager.Received(0).GetHitList();
        }
示例#6
0
        public void IsUnderGitRepo_null()
        {
            var options = new GetGitChangeDirectoryCommandOptions {
                Log = true
            };

            var test = new ActionLog(null, options, _hitManager);

            Assert.IsFalse(test.IsUnderGitRepo);
        }
示例#7
0
        public void No_directory_hit(string value)
        {
            var options = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = value, Last = true
            };
            var testCmd = new ActionLastDirectory(_repoPaths, options, _hitManager);

            testCmd.Process(_info);

            _hitManager.Received(0).GetHitList();
        }
示例#8
0
        protected override GitChangeDirectoryInfo BuildResponse()
        {
            var options = new GetGitChangeDirectoryCommandOptions(this);

            var commonArgs = new DWGitshCommonArgs(null, null, this.RepositoryDirectories);

            var cmd = new GetGitChangeDirectoryCommand(commonArgs, options);

            var cmdResult = cmd.Process();

            return(cmdResult);
        }
示例#9
0
        public void Not_set_does_nothing()
        {
            var options = new GetGitChangeDirectoryCommandOptions {
            };
            var testCmd = new ActionList(_repoPaths, options, _hitManager);

            var result = testCmd.Process(_info);

            Assert.False(result);

            _hitManager.Received(0).GetHitList();
        }
示例#10
0
        public void Valid_returns_last_dir()
        {
            var options = new GetGitChangeDirectoryCommandOptions {
                Last = true
            };
            var testCmd = new ActionLastDirectory(_repoPaths, options, _hitManager);

            testCmd.Process(_info);

            _hitManager.Received(0).GetHitList();
            _hitManager.Received(1).GetLastUsedFolder();
            Assert.AreEqual(_lastHitFolder.Directory, _info.TargetDirectory);
        }
示例#11
0
        public void SetAlias_invalid_alias_no_action_taken(string value)
        {
            var options = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = "ShouldntMatter", Alias = value
            };
            var testCmd = new ActionRemoveAlias(_repoPaths, options, _hitManager);

            Assert.AreEqual(options.NameOrAlias, testCmd.TargetName);

            testCmd.Process(_info);

            _hitManager.Received(0).GetHitList();
        }
示例#12
0
        public void Path_HandlePreviousTarget_no_data()
        {
            var options = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = "-"
            };
            var testCmd = new ActionNameOrAlias(_repoPaths, options, _hitManagerEmpty);

            var result = testCmd.Process(_info);

            Assert.True(result);

            _hitManagerEmpty.Received(1).GetHitList();

            Assert.Null(_info.TargetDirectory);
        }
示例#13
0
        public void Valid_returns_all_dirs()
        {
            var options = new GetGitChangeDirectoryCommandOptions {
                List = true
            };
            var testCmd = new ActionList(_repoPaths, options, _hitManager);

            var result = testCmd.Process(_info);

            Assert.True(result);

            _hitManager.Received(1).GetHitList();
            Assert.NotNull(_info.ListData);
            Assert.True(GcdTestHelper.AreSame(_AllHitData, _info.ListData));
        }
示例#14
0
        public void Path_HandleRootTarget_no_data(string value)
        {
            var options = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = value
            };
            var testCmd = new ActionNameOrAlias(_repoPaths, options, _hitManagerEmpty);

            var result = testCmd.Process(_info);

            Assert.True(result);

            _hitManagerEmpty.Received(1).GetHitList();

            Assert.NotNull(_info.TargetDirectory);
            Assert.AreEqual(_repoPaths.RootFolder, _info.TargetDirectory);
        }
示例#15
0
        public void Path_HandleSingleTarget()
        {
            var expected           = _AllHitData.First();
            var expectedFolderName = GcdTestHelper.GetFolderNameFromPath(expected.Directory);
            var options            = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = expectedFolderName
            };
            var testCmd = new ActionNameOrAlias(_repoPaths, options, _hitManager);

            var result = testCmd.Process(_info);

            Assert.True(result);

            _hitManager.Received(1).GetHitList();
            Assert.AreEqual(expected.Directory, _info.TargetDirectory);
        }
示例#16
0
        public void Not_set_returns_list_and_prompt()
        {
            _hitManager.GetHitList().Returns(new List <HitData>());
            var options = new GetGitChangeDirectoryCommandOptions {
            };
            var testCmd = new ActionDefault(_repoPaths, options, _hitManager);

            var result = testCmd.Process(_info);

            Assert.True(result);

            _hitManager.Received(1).GetHitList();
            Assert.True(_info.PromptForListSelector);
            Assert.True(_info.Options.List);
            CollectionAssert.IsEmpty(_info.ListData);
        }
示例#17
0
        public void Path_HandleMultiTarget()
        {
            var options = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = "SomeRandomName"
            };
            var testCmd = new ActionNameOrAlias(_repoPaths, options, _hitManager);

            var result = testCmd.Process(_info);

            Assert.True(result);

            _hitManager.Received(1).GetHitList();
            Assert.True(GcdTestHelper.AreSame(_AllHitData, _info.ListData));
            Assert.Null(_info.TargetDirectory);
            Assert.True(_info.Options.List);
            Assert.True(_info.PromptForListSelector);
        }
示例#18
0
        public void Path_HandleMultiTarget_no_data()
        {
            var options = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = "SomeRandomName"
            };
            var testCmd = new ActionNameOrAlias(_repoPaths, options, _hitManagerEmpty);

            var result = testCmd.Process(_info);

            Assert.True(result);

            _hitManagerEmpty.Received(1).GetHitList();
            CollectionAssert.IsEmpty(_info.ListData);
            Assert.Null(_info.TargetDirectory);
            Assert.True(_info.Options.List);
            Assert.True(_info.PromptForListSelector);
        }
示例#19
0
        public void Existing_entry_remove_no_match()
        {
            var hitData      = GcdTestHelper.BuildFakeHitData(false);
            var expectedData = hitData.First();

            _hitManager.GetHitList().Returns(hitData);

            var options = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = "Gibberish", RemoveAlias = true
            };

            var testCmd = new ActionRemoveAlias(_repoPaths, options, _hitManager);


            testCmd.Process(_info);

            _hitManager.Received(1).GetHitList();
            _hitManager.Received(0).SetAlias(Arg.Any <string>(), Arg.Any <string>());
        }
示例#20
0
        public void Path_HandlePreviousTarget()
        {
            var options = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = "-"
            };
            var testCmd = new ActionNameOrAlias(_repoPaths, options, _hitManager);

            var expected = _AllHitData.OrderByDescending(x => x.DateLastHit)
                           .FirstOrDefault(x => x.Directory.IsSameFolder(_repoPaths.RootFolder) == false);

            var result = testCmd.Process(_info);

            Assert.True(result);

            _hitManager.Received(1).GetHitList();

            Assert.NotNull(_info.TargetDirectory);
            Assert.AreEqual(expected.Directory, _info.TargetDirectory);
        }
示例#21
0
        public void Existing_entry_set_new_alias()
        {
            var hitData      = GcdTestHelper.BuildFakeHitData(true);
            var expectedData = hitData.First();

            var options = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = expectedData.Alias, Alias = "Surge"
            };

            var testCmd = new ActionSetAlias(_repoPaths, options, _hitManager);

            Assert.AreEqual(options.NameOrAlias, testCmd.TargetName);
            _hitManager.GetHitList().Returns(hitData);

            testCmd.Process(_info);

            _hitManager.Received(1).GetHitList();
            _hitManager.Received(1).SetAlias(expectedData.Directory, options.Alias);
        }
示例#22
0
        public void Existing_entry_remove_alias()
        {
            var hitData = GcdTestHelper.BuildFakeHitData(true);

            _hitManager.GetHitList().Returns(hitData);
            var expectedData = hitData.First();

            var findName = GcdTestHelper.GetFolderNameFromPath(expectedData.Directory);

            var options = new GetGitChangeDirectoryCommandOptions {
                NameOrAlias = findName, RemoveAlias = true
            };

            var testCmd = new ActionRemoveAlias(_repoPaths, options, _hitManager);

            Assert.AreEqual(options.NameOrAlias, testCmd.TargetName);

            testCmd.Process(_info);

            _hitManager.Received(1).GetHitList();
            _hitManager.Received(1).SetAlias(expectedData.Directory, null);
        }
示例#23
0
        protected void SetupBase()
        {
            _AllHitData = GcdTestHelper.BuildFakeHitData();

            _info         = new GitChangeDirectoryInfo();
            _options      = new GetGitChangeDirectoryCommandOptions();
            _info.Options = new GetGitChangeDirectoryCommandOptions();

            _repoPaths = Substitute.For <IRepositoryPaths>();
            _repoPaths.RepositoryFolder.Returns(_gitFolder);
            _repoPaths.RootFolder.Returns(_rootFolder);

            _repoPathsNoGit = Substitute.For <IRepositoryPaths>();
            _repoPathsNoGit.CurrentPath.Returns(_nonGitFolder);

            _hitManager = Substitute.For <IHitDataManager>();
            _hitManager.GetHitList().Returns(_AllHitData);
            _lastHitFolder = _AllHitData.OrderByDescending(x => x.DateLastHit).First();
            _hitManager.GetLastUsedFolder().Returns(_lastHitFolder.Directory);

            _hitManagerEmpty = Substitute.For <IHitDataManager>();
            _hitManagerEmpty.GetHitList().Returns(new List <HitData>());
            _hitManagerEmpty.GetLastUsedFolder().Returns((string)null);
        }