diff --git a/tests/UnitTest/MainTest.cs b/tests/UnitTest/MainTest.cs index 2e4c29bf..4d2698d5 100644 --- a/tests/UnitTest/MainTest.cs +++ b/tests/UnitTest/MainTest.cs @@ -1,7 +1,5 @@ using Microsoft.Extensions.DependencyInjection; using BotSharp.Abstraction.Conversations; -using BotSharp.Core.Evaluations; -using BotSharp.Plugin.ChatHub.Hooks; namespace UnitTest { @@ -13,18 +11,53 @@ namespace UnitTest { var services = new ServiceCollection(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); var serviceProvider = services.BuildServiceProvider(); var conversationHookProvider = serviceProvider.GetService(); - + Assert.AreEqual(3, conversationHookProvider.Hooks.Count()); - // ChatHubConversationHook has the top priority - Assert.IsInstanceOfType(conversationHookProvider.HooksOrderByPriority.FirstOrDefault()); + 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 TestHookA() + { + Priority = 2; + } + } + + class TestHookC : ConversationHookBase + { + public TestHookA() + { + Priority = 3; + } } } } \ No newline at end of file diff --git a/tests/UnitTest/UnitTest.csproj b/tests/UnitTest/UnitTest.csproj index 3e1831ae..67e7d504 100644 --- a/tests/UnitTest/UnitTest.csproj +++ b/tests/UnitTest/UnitTest.csproj @@ -22,7 +22,5 @@ - -