BotSharp/tests/UnitTest/MainTest.cs
2024-12-14 09:25:19 -08:00

63 lines
1.6 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using BotSharp.Abstraction.Conversations;
namespace UnitTest
{
[TestClass]
public class MainTest
{
[TestMethod]
public void TestConversationHookProvider()
{
var services = new ServiceCollection();
services.AddSingleton<IConversationHook, TestHookC>();
services.AddSingleton<IConversationHook, TestHookA>();
services.AddSingleton<IConversationHook, TestHookB>();
services.AddSingleton<ConversationHookProvider>();
var serviceProvider = services.BuildServiceProvider();
var conversationHookProvider = serviceProvider.GetService<ConversationHookProvider>();
Assert.AreEqual(3, conversationHookProvider.Hooks.Count());
var prevHook = default(IConversationHook);
// Assert priority
foreach (var hook in conversationHookProvider.HooksOrderByPriority)
{
if (prevHook != null)
{
Assert.IsTrue(prevHook.Priority < hook.Priority);
}
prevHook = hook;
}
}
class TestHookA : ConversationHookBase
{
public TestHookA()
{
Priority = 1;
}
}
class TestHookB : ConversationHookBase
{
public TestHookB()
{
Priority = 2;
}
}
class TestHookC : ConversationHookBase
{
public TestHookC()
{
Priority = 3;
}
}
}
}