public void GotoAutoCompleteNavigationCommandsWork()
        {
            var tab = new StubViewPort {
                Goto = new StubCommand {
                    CanExecute = ICommandExtensions.CanAlwaysExecute
                },
                Model = new StubDataModel {
                    GetAutoCompleteAnchorNameOptions = str => new List <string> {
                        "Option 1",
                        "Option 2",
                        "Option 3",
                    }
                },
            };
            var viewModel = new GotoControlViewModel(tab);

            Assert.False(viewModel.ControlVisible);
            viewModel.ShowGoto.Execute(true);
            Assert.True(viewModel.ControlVisible);

            Assert.False(viewModel.ShowAutoCompleteOptions);
            viewModel.Text = "Something";
            Assert.True(viewModel.ShowAutoCompleteOptions);
            Assert.Equal(3, viewModel.AutoCompleteOptions.Count);
            Assert.All(viewModel.AutoCompleteOptions, option => Assert.False(option.IsSelected));

            viewModel.MoveAutoCompleteSelectionDown.Execute();
            Assert.True(viewModel.AutoCompleteOptions[0].IsSelected);

            viewModel.MoveAutoCompleteSelectionDown.Execute();
            Assert.True(viewModel.AutoCompleteOptions[1].IsSelected);

            viewModel.MoveAutoCompleteSelectionUp.Execute();
            Assert.True(viewModel.AutoCompleteOptions[0].IsSelected);
        }
Ejemplo n.º 2
0
        public void EditorShowsErrorIfNoneFound()
        {
            var tab    = new StubViewPort();
            var editor = new EditorViewModel(new StubFileSystem())
            {
                tab
            };

            tab.Find = str => new (int, int)[0];
Ejemplo n.º 3
0
        public void EditorUpdatesFileSystemWatchesWhenViewPortFileNameChanges()
        {
            var fileSystem = new StubFileSystem();
            int addCalls = 0, removeCalls = 0;

            fileSystem.AddListenerToFile     = (fileName, action) => addCalls++;
            fileSystem.RemoveListenerForFile = (fileName, action) => removeCalls++;
            var editor = new EditorViewModel(fileSystem);
            var tab    = new StubViewPort();

            editor.Add(tab);
            Assert.Equal(0, addCalls);
            Assert.Equal(0, removeCalls);

            tab.FileName = "file.txt";
            tab.PropertyChanged.Invoke(tab, new ExtendedPropertyChangedEventArgs(null, nameof(tab.FileName)));
            Assert.Equal(1, addCalls);
            Assert.Equal(0, removeCalls);

            tab.FileName = "file2.txt";
            tab.PropertyChanged.Invoke(tab, new ExtendedPropertyChangedEventArgs("file.txt", nameof(tab.FileName)));
            Assert.Equal(2, addCalls);
            Assert.Equal(1, removeCalls);
        }