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

63 lines
2.3 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.Collections.Generic;
2021-08-16 15:25:06 +02:00
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
2020-11-03 21:45:01 +01:00
using PowerLauncher.Plugin;
using Wox.Plugin;
namespace Wox.Test
{
2021-08-16 15:25:06 +02:00
[TestClass]
public class PluginManagerTest
{
2021-08-16 15:25:06 +02:00
[DataTestMethod]
[DataRow(">", "dummyQueryText", "dummyTitle", "> dummyQueryText")]
[DataRow(">", null, "dummyTitle", "> dummyTitle")]
[DataRow(">", "", "dummyTitle", "> dummyTitle")]
[DataRow("", "dummyQueryText", "dummyTitle", "dummyQueryText")]
[DataRow("", null, "dummyTitle", "dummyTitle")]
[DataRow("", "", "dummyTitle", "dummyTitle")]
[DataRow(null, "dummyQueryText", "dummyTitle", "dummyQueryText")]
[DataRow(null, null, "dummyTitle", "dummyTitle")]
[DataRow(null, "", "dummyTitle", "dummyTitle")]
public void QueryForPluginSetsActionKeywordWhenQueryTextDisplayIsEmpty(string actionKeyword, string queryTextDisplay, string title, string expectedResult)
{
// Arrange
var query = new Query
{
ActionKeyword = actionKeyword,
};
var metadata = new PluginMetadata
{
ID = "dummyName",
2021-02-10 15:12:42 +02:00
IcoPathDark = "dummyIcoPath",
IcoPathLight = "dummyIcoPath",
ExecuteFileName = "dummyExecuteFileName",
PluginDirectory = "dummyPluginDirectory",
};
var result = new Result()
{
QueryTextDisplay = queryTextDisplay,
Title = title,
};
var results = new List<Result>() { result };
var pluginMock = new Mock<IPlugin>();
pluginMock.Setup(r => r.Query(query)).Returns(results);
var pluginPair = new PluginPair(metadata)
{
Plugin = pluginMock.Object,
IsPluginInitialized = true,
};
// Act
var queryOutput = PluginManager.QueryForPlugin(pluginPair, query);
// Assert
Assert.AreEqual(expectedResult, queryOutput[0].QueryTextDisplay);
}
}
}