Dreamine.FullKit.Tests 1.0.0.0
Dreamine.FullKit.Tests 기능을 검증하는 자동화 테스트 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
ProtocolAdapterTests.cs
이 파일의 문서화 페이지로 가기
1using System.Text;
2using Dreamine.Communication.Abstractions.Models;
3using Dreamine.Communication.Core.Extensions;
4using Dreamine.Communication.Core.Protocols;
5
7
16public sealed class ProtocolAdapterTests
17{
26 [Fact]
28 {
29 var adapter = new PlainTextProtocolAdapter(Encoding.UTF8, "external.text", "Text");
30
31 var message = adapter.Decode(Encoding.UTF8.GetBytes("hello"));
32
33 Assert.Equal("Text", message.Name);
34 Assert.Equal("external.text", message.Route);
35 Assert.Equal("hello", message.GetPayloadAsString());
36 Assert.Equal("PlainText", message.Headers["Protocol"]);
37 }
38
47 [Fact]
49 {
50 var adapter = new RawJsonProtocolAdapter("fallback.route", "Fallback");
51
52 var message = adapter.Decode(Encoding.UTF8.GetBytes("""{"route":"machine.1","name":"Telemetry","value":3}"""));
53
54 Assert.Equal("machine.1", message.Route);
55 Assert.Equal("Telemetry", message.Name);
56 Assert.Equal("RawJson", message.Headers["Protocol"]);
57 }
58
67 [Fact]
69 {
70 var adapter = new RawJsonProtocolAdapter();
71
72 var payload = adapter.Encode(new MessageEnvelope { Route = "route", Name = "Name" });
73 var json = Encoding.UTF8.GetString(payload);
74
75 Assert.Contains("\"name\":\"Name\"", json);
76 Assert.Contains("\"route\":\"route\"", json);
77 }
78
87 [Fact]
89 {
90 var message = MessageEnvelopeExtensions.FromStringPayload("route", "Name", "payload");
91
92 Assert.Equal("route", message.Route);
93 Assert.Equal("Name", message.Name);
94 Assert.Equal("payload", message.GetPayloadAsString());
95 }
96}