Files
PowerToys/src/modules/launcher/Wox.Test/ResultsViewModelTest.cs

141 lines
5.6 KiB
C#
Raw Normal View History

// Copyright (c) Microsoft Corporation
// The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System.Windows.Input;
2021-08-16 15:25:06 +02:00
using Microsoft.VisualStudio.TestTools.UnitTesting;
using PowerLauncher.ViewModel;
using Wox.Plugin;
namespace Wox.Test
{
2021-08-16 15:25:06 +02:00
[TestClass]
public class ResultsViewModelTest
{
2021-08-16 15:25:06 +02:00
[TestMethod]
public void ContextMenuSelectedIndexShouldEqualNoSelectionIndexWhenInitialized()
{
// Arrange
ResultsViewModel rvm = new ResultsViewModel();
Result result = new Result();
ResultViewModel selectedItem = new ResultViewModel(result);
selectedItem.ContextMenuItems.Add(new ContextMenuItemViewModel(null, null, null, null, Key.None, ModifierKeys.None, null));
rvm.SelectedItem = selectedItem;
// Assert
Assert.AreEqual(ResultViewModel.NoSelectionIndex, selectedItem.ContextMenuSelectedIndex);
}
2021-08-16 15:25:06 +02:00
[TestMethod]
public void SelectNextContextMenuItemIncrementsContextMenuSelectedIndexWhenCalled()
{
// Arrange
ResultsViewModel rvm = new ResultsViewModel();
Result result = new Result();
ResultViewModel selectedItem = new ResultViewModel(result);
selectedItem.ContextMenuItems.Add(new ContextMenuItemViewModel(null, null, null, null, Key.None, ModifierKeys.None, null));
rvm.SelectedItem = selectedItem;
// Act
rvm.SelectNextContextMenuItem();
// Assert
Assert.AreEqual(0, selectedItem.ContextMenuSelectedIndex);
}
2021-08-16 15:25:06 +02:00
[TestMethod]
public void SelectNextContextMenuItemDoesnNotIncrementContextMenuSelectedIndexWhenCalledOnLastItem()
{
// Arrange
ResultsViewModel rvm = new ResultsViewModel();
Result result = new Result();
ResultViewModel selectedItem = new ResultViewModel(result);
selectedItem.ContextMenuItems.Add(new ContextMenuItemViewModel(null, null, null, null, Key.None, ModifierKeys.None, null));
rvm.SelectedItem = selectedItem;
// Act
rvm.SelectNextContextMenuItem();
// Assert
Assert.AreEqual(0, selectedItem.ContextMenuSelectedIndex);
}
2021-08-16 15:25:06 +02:00
[TestMethod]
public void SelectPreviousContextMenuItemDecrementsContextMenuSelectedIndexWhenCalled()
{
// Arrange
ResultsViewModel rvm = new ResultsViewModel();
Result result = new Result();
ResultViewModel selectedItem = new ResultViewModel(result);
selectedItem.ContextMenuItems.Add(new ContextMenuItemViewModel(null, null, null, null, Key.None, ModifierKeys.None, null));
selectedItem.ContextMenuItems.Add(new ContextMenuItemViewModel(null, null, null, null, Key.None, ModifierKeys.None, null));
selectedItem.ContextMenuItems.Add(new ContextMenuItemViewModel(null, null, null, null, Key.None, ModifierKeys.None, null));
rvm.SelectedItem = selectedItem;
// Act
rvm.SelectNextContextMenuItem();
rvm.SelectNextContextMenuItem();
rvm.SelectNextContextMenuItem();
rvm.SelectPreviousContextMenuItem();
// Assert
Assert.AreEqual(1, selectedItem.ContextMenuSelectedIndex);
}
2021-08-16 15:25:06 +02:00
[TestMethod]
public void SelectPreviousContextMenuItemResetsContextMenuSelectedIndexWhenCalledOnFirstItem()
{
// Arrange
ResultsViewModel rvm = new ResultsViewModel();
Result result = new Result();
ResultViewModel selectedItem = new ResultViewModel(result);
selectedItem.ContextMenuItems.Add(new ContextMenuItemViewModel(null, null, null, null, Key.None, ModifierKeys.None, null));
rvm.SelectedItem = selectedItem;
// Act
rvm.SelectNextContextMenuItem();
rvm.SelectPreviousContextMenuItem();
// Assert
Assert.AreEqual(ResultViewModel.NoSelectionIndex, selectedItem.ContextMenuSelectedIndex);
}
2021-08-16 15:25:06 +02:00
[TestMethod]
public void IsContextMenuItemSelectedReturnsTrueWhenContextMenuItemIsSelected()
{
// Arrange
ResultsViewModel rvm = new ResultsViewModel();
Result result = new Result();
ResultViewModel selectedItem = new ResultViewModel(result);
selectedItem.ContextMenuItems.Add(new ContextMenuItemViewModel(null, null, null, null, Key.None, ModifierKeys.None, null));
rvm.SelectedItem = selectedItem;
// Act
rvm.SelectNextContextMenuItem();
bool isContextMenuItemSelected = rvm.IsContextMenuItemSelected();
// Assert
Assert.IsTrue(isContextMenuItemSelected);
}
2021-08-16 15:25:06 +02:00
[TestMethod]
public void IsContextMenuItemSelectedReturnsFalseWhenContextMenuItemIsNotSelected()
{
// Arrange
ResultsViewModel rvm = new ResultsViewModel();
Result result = new Result();
ResultViewModel selectedItem = new ResultViewModel(result);
selectedItem.ContextMenuItems.Add(new ContextMenuItemViewModel(null, null, null, null, Key.None, ModifierKeys.None, null));
rvm.SelectedItem = selectedItem;
// Act
rvm.SelectNextContextMenuItem();
rvm.SelectPreviousContextMenuItem();
bool isContextMenuItemSelected = rvm.IsContextMenuItemSelected();
// Assert
Assert.IsFalse(isContextMenuItemSelected);
}
}
}