Dreamine.FullKit.Tests 1.0.0.0
Dreamine.FullKit.Tests 기능을 검증하는 자동화 테스트 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
MessageRouterTests.cs
이 파일의 문서화 페이지로 가기
1using Dreamine.Communication.Abstractions.Models;
2using Dreamine.Communication.Core.Routing;
3
5
14public sealed class MessageRouterTests
15{
32 [Fact]
34 {
35 var router = new MessageRouter();
36 var calls = new List<string>();
37 router.Register("route", (_, _) =>
38 {
39 calls.Add("first");
40 return Task.CompletedTask;
41 });
42 router.Register("route", (_, _) =>
43 {
44 calls.Add("second");
45 return Task.CompletedTask;
46 });
47
48 await router.RouteAsync(new MessageEnvelope { Route = "route" });
49
50 Assert.Equal(new[] { "first", "second" }, calls);
51 }
52
69 [Fact]
71 {
72 var router = new MessageRouter();
73 var called = false;
74 router.Register("route", (_, _) =>
75 {
76 called = true;
77 return Task.CompletedTask;
78 });
79
80 router.Clear();
81 await router.RouteAsync(new MessageEnvelope { Route = "route" });
82
83 Assert.False(called);
84 }
85
102 [Fact]
104 {
105 var router = new MessageRouter();
106 var calls = new List<string>();
107 Func<MessageEnvelope, CancellationToken, Task> first = (_, _) =>
108 {
109 calls.Add("first");
110 return Task.CompletedTask;
111 };
112 Func<MessageEnvelope, CancellationToken, Task> second = (_, _) =>
113 {
114 calls.Add("second");
115 return Task.CompletedTask;
116 };
117
118 router.Register("route", first);
119 router.Register("route", second);
120
121 Assert.True(router.Unregister("route", first));
122
123 await router.RouteAsync(new MessageEnvelope { Route = "route" });
124
125 Assert.Equal(["second"], calls);
126 }
127}