BotSharp/tests/UnitTest/MainTest.cs

63 lines
1.6 KiB
C#
Raw Normal View History

2024-12-13 04:44:26 +00:00
using Microsoft.Extensions.DependencyInjection;
using BotSharp.Abstraction.Conversations;
namespace UnitTest
{
[TestClass]
public class MainTest
{
[TestMethod]
public void TestConversationHookProvider()
{
var services = new ServiceCollection();
2024-12-14 16:35:37 +00:00
services.AddSingleton<IConversationHook, TestHookC>();
services.AddSingleton<IConversationHook, TestHookA>();
services.AddSingleton<IConversationHook, TestHookB>();
2024-12-13 04:44:26 +00:00
services.AddSingleton<ConversationHookProvider>();
var serviceProvider = services.BuildServiceProvider();
var conversationHookProvider = serviceProvider.GetService<ConversationHookProvider>();
2024-12-14 16:35:37 +00:00
2024-12-13 04:44:26 +00:00
Assert.AreEqual(3, conversationHookProvider.Hooks.Count());
2024-12-14 16:35:37 +00:00
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
{
2024-12-14 17:25:19 +00:00
public TestHookB()
2024-12-14 16:35:37 +00:00
{
Priority = 2;
}
}
class TestHookC : ConversationHookBase
{
2024-12-14 17:25:19 +00:00
public TestHookC()
2024-12-14 16:35:37 +00:00
{
Priority = 3;
}
2024-12-13 04:44:26 +00:00
}
}
}