/ src / modules / launcher / Wox.Test / MainViewModelTest.cs
MainViewModelTest.cs
  1  // Copyright (c) Microsoft Corporation
  2  // The Microsoft Corporation licenses this file to you under the MIT license.
  3  // See the LICENSE file in the project root for more information.
  4  
  5  using Microsoft.VisualStudio.TestTools.UnitTesting;
  6  using PowerLauncher.ViewModel;
  7  
  8  namespace Wox.Test
  9  {
 10      [TestClass]
 11      public class MainViewModelTest
 12      {
 13          [TestMethod]
 14          public void MainViewModelGetAutoCompleteTextReturnsEmptyStringWhenInputIsNull()
 15          {
 16              // Arrange
 17              int index = 0;
 18              string input = null;
 19              string query = "M";
 20  
 21              // Act
 22              string autoCompleteText = MainViewModel.GetAutoCompleteText(index, input, query);
 23  
 24              // Assert
 25              Assert.AreEqual(string.Empty, autoCompleteText);
 26          }
 27  
 28          [TestMethod]
 29          public void MainViewModelGetAutoCompleteTextReturnsEmptyStringWhenInputIsEmpty()
 30          {
 31              // Arrange
 32              int index = 0;
 33              string input = string.Empty;
 34              string query = "M";
 35  
 36              // Act
 37              string autoCompleteText = MainViewModel.GetAutoCompleteText(index, input, query);
 38  
 39              // Assert
 40              Assert.AreEqual(string.Empty, autoCompleteText);
 41          }
 42  
 43          [TestMethod]
 44          public void MainViewModelGetAutoCompleteTextReturnsEmptyStringWhenQueryIsNull()
 45          {
 46              // Arrange
 47              int index = 0;
 48              string input = "M";
 49              string query = null;
 50  
 51              // Act
 52              string autoCompleteText = MainViewModel.GetAutoCompleteText(index, input, query);
 53  
 54              // Assert
 55              Assert.AreEqual(string.Empty, autoCompleteText);
 56          }
 57  
 58          [TestMethod]
 59          public void MainViewModelGetAutoCompleteTextReturnsEmptyStringWhenQueryIsEmpty()
 60          {
 61              // Arrange
 62              int index = 0;
 63              string input = "M";
 64              string query = string.Empty;
 65  
 66              // Act
 67              string autoCompleteText = MainViewModel.GetAutoCompleteText(index, input, query);
 68  
 69              // Assert
 70              Assert.AreEqual(string.Empty, autoCompleteText);
 71          }
 72  
 73          [TestMethod]
 74          public void MainViewModelGetAutoCompleteTextReturnsEmptyStringWhenIndexIsNonZero()
 75          {
 76              // Arrange
 77              int index = 2;
 78              string input = "Visual";
 79              string query = "Vis";
 80  
 81              // Act
 82              string autoCompleteText = MainViewModel.GetAutoCompleteText(index, input, query);
 83  
 84              // Assert
 85              Assert.AreEqual(string.Empty, autoCompleteText);
 86          }
 87  
 88          [TestMethod]
 89          public void MainViewModelGetAutoCompleteTextReturnsMatchingStringWhenIndexIsZeroAndMatch()
 90          {
 91              // Arrange
 92              int index = 0;
 93              string input = "VISUAL";
 94              string query = "VIs";
 95              string expectedAutoCompleteText = "VIsUAL";
 96  
 97              // Act
 98              string autoCompleteText = MainViewModel.GetAutoCompleteText(index, input, query);
 99  
100              // Assert
101              Assert.AreEqual(expectedAutoCompleteText, autoCompleteText);
102          }
103  
104          [TestMethod]
105          public void MainViewModelGetAutoCompleteTextReturnsEmptyStringWhenIndexIsZeroAndNoMatch()
106          {
107              // Arrange
108              int index = 0;
109              string input = "VISUAL";
110              string query = "Vim";
111              string expectedAutoCompleteText = string.Empty;
112  
113              // Act
114              string autoCompleteText = MainViewModel.GetAutoCompleteText(index, input, query);
115  
116              // Assert
117              Assert.AreEqual(expectedAutoCompleteText, autoCompleteText);
118          }
119  
120          [TestMethod]
121          public void MainViewModelGetSearchTextReturnsEmptyStringWhenInputIsNull()
122          {
123              // Arrange
124              int index = 0;
125              string input = null;
126              string query = "M";
127  
128              // Act
129              string autoCompleteText = MainViewModel.GetSearchText(index, input, query);
130  
131              // Assert
132              Assert.AreEqual(string.Empty, autoCompleteText);
133          }
134  
135          [TestMethod]
136          public void MainViewModelGetSearchTextReturnsEmptyStringWhenInputIsEmpty()
137          {
138              // Arrange
139              int index = 0;
140              string input = string.Empty;
141              string query = "M";
142  
143              // Act
144              string autoCompleteText = MainViewModel.GetSearchText(index, input, query);
145  
146              // Assert
147              Assert.AreEqual(string.Empty, autoCompleteText);
148          }
149  
150          [TestMethod]
151          public void MainViewModelGetSearchTextReturnsInputStringWhenQueryIsNull()
152          {
153              // Arrange
154              int index = 0;
155              string input = "Visual";
156              string query = null;
157  
158              // Act
159              string autoCompleteText = MainViewModel.GetSearchText(index, input, query);
160  
161              // Assert
162              Assert.AreEqual(input, autoCompleteText);
163          }
164  
165          [TestMethod]
166          public void MainViewModelGetSearchTextReturnsInputStringWhenQueryIsEmpty()
167          {
168              // Arrange
169              int index = 0;
170              string input = "Visual";
171              string query = string.Empty;
172  
173              // Act
174              string autoCompleteText = MainViewModel.GetSearchText(index, input, query);
175  
176              // Assert
177              Assert.AreEqual(input, autoCompleteText);
178          }
179  
180          [TestMethod]
181          public void MainViewModelGetSearchTextReturnsMatchingStringWithCaseWhenIndexIsZeroAndMatch()
182          {
183              // Arrange
184              int index = 0;
185              string input = "VISUAL";
186              string query = "VIs";
187              string expectedAutoCompleteText = "VIsUAL";
188  
189              // Act
190              string autoCompleteText = MainViewModel.GetSearchText(index, input, query);
191  
192              // Assert
193              Assert.AreEqual(expectedAutoCompleteText, autoCompleteText);
194          }
195  
196          [TestMethod]
197          public void MainViewModelGetSearchTextReturnsInputWhenIndexIsZeroAndNoMatch()
198          {
199              // Arrange
200              int index = 0;
201              string input = "VISUAL";
202              string query = "Vim";
203  
204              // Act
205              string autoCompleteText = MainViewModel.GetSearchText(index, input, query);
206  
207              // Assert
208              Assert.AreEqual(input, autoCompleteText);
209          }
210  
211          [TestMethod]
212          public void ShouldAutoCompleteTextBeEmptyShouldReturnFalseWhenAutoCompleteTextIsEmpty()
213          {
214              // Arrange
215              string queryText = "Te";
216              string autoCompleteText = string.Empty;
217  
218              // Act
219              bool result = MainViewModel.ShouldAutoCompleteTextBeEmpty(queryText, autoCompleteText);
220  
221              // Assert
222              Assert.AreEqual(false, result);
223          }
224  
225          [TestMethod]
226          public void ShouldAutoCompleteTextBeEmptyShouldReturnTrueWhenQueryTextMatchAutoCompleteText()
227          {
228              // Arrange
229              string queryText = "Te";
230              string autoCompleteText = "Teams";
231  
232              // Act
233              bool result = MainViewModel.ShouldAutoCompleteTextBeEmpty(queryText, autoCompleteText);
234  
235              // Assert
236              Assert.AreEqual(false, result);
237          }
238  
239          [TestMethod]
240          public void ShouldAutoCompleteTextBeEmptyShouldReturnTrueWhenQueryTextIsEmpty()
241          {
242              // Arrange
243              string queryText = string.Empty;
244              string autoCompleteText = "Teams";
245  
246              // Act
247              bool result = MainViewModel.ShouldAutoCompleteTextBeEmpty(queryText, autoCompleteText);
248  
249              // Assert
250              Assert.AreEqual(true, result);
251          }
252  
253          [TestMethod]
254          public void ShouldAutoCompleteTextBeEmptyShouldReturnTrueWhenQueryTextDoesNotMatchAutoCompleteText()
255          {
256              // Arrange
257              string queryText = "TE";
258              string autoCompleteText = "Teams";
259  
260              // Act
261              bool result = MainViewModel.ShouldAutoCompleteTextBeEmpty(queryText, autoCompleteText);
262  
263              // Assert
264              Assert.AreEqual(true, result);
265          }
266      }
267  }