Dreamine.FullKit.Tests 1.0.0.0
Dreamine.FullKit.Tests 기능을 검증하는 자동화 테스트 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
InMemoryMessageBusTests.cs
이 파일의 문서화 페이지로 가기
1using Dreamine.Communication.Abstractions.Enums;
2using Dreamine.Communication.Abstractions.Models;
3using Dreamine.Communication.Core.Buses;
4
6
15public sealed class InMemoryMessageBusTests
16{
33 [Fact]
35 {
36 var bus = new InMemoryMessageBus();
37 var received = new List<string>();
38 await bus.SubscribeAsync("route.a", (message, _) =>
39 {
40 received.Add(message.Name);
41 return Task.CompletedTask;
42 });
43
44 await bus.ConnectAsync();
45 await bus.PublishAsync(new MessageEnvelope { Route = "route.a", Name = "Ping" });
46 await bus.PublishAsync(new MessageEnvelope { Route = "route.b", Name = "Ignored" });
47
48 Assert.Equal(ConnectionState.Connected, bus.State);
49 Assert.Equal(new[] { "Ping" }, received);
50 }
51
68 [Fact]
70 {
71 var bus = new InMemoryMessageBus();
72
73 await Assert.ThrowsAsync<InvalidOperationException>(
74 () => bus.PublishAsync(new MessageEnvelope { Route = "route" }));
75 }
76
93 [Fact]
95 {
96 var bus = new InMemoryMessageBus();
97 var count = 0;
98 await bus.SubscribeAsync("route", (_, _) =>
99 {
100 count++;
101 return Task.CompletedTask;
102 });
103
104 await bus.ConnectAsync();
105 await bus.DisposeAsync();
106 await bus.ConnectAsync();
107 await bus.PublishAsync(new MessageEnvelope { Route = "route" });
108
109 Assert.Equal(0, count);
110 }
111}