Skip to content

Commit

Permalink
Refactor NatsMsg size and flags handling in tests and class
Browse files Browse the repository at this point in the history
  • Loading branch information
mtmk committed Oct 13, 2024
1 parent 71ed9d9 commit 7e5b699
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 7 deletions.
3 changes: 1 addition & 2 deletions src/NATS.Client.Core/NatsMsg.cs
Original file line number Diff line number Diff line change
Expand Up @@ -169,8 +169,7 @@ public NatsMsg(
{
Subject = subject;
ReplyTo = replyTo;
Size = size;
Flags = flags;
_flagsAndSize = ((uint)flags << 30) | (uint)(size & 0x3FFFFFFF);
Headers = headers;
Data = data;
Connection = connection;
Expand Down
31 changes: 26 additions & 5 deletions tests/NATS.Client.CoreUnit.Tests/NatsMsgTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,34 @@ public class NatsMsgTests
[InlineData(42, NatsMsgFlags.NoResponders, false, true)]
[InlineData(42, NatsMsgFlags.Empty | NatsMsgFlags.NoResponders, true, true)]
[InlineData(1024 * 1024 * 128, NatsMsgFlags.Empty, true, false)]
[InlineData(1024 * 1024 * 1000, NatsMsgFlags.Empty, true, false)]
[InlineData(0b00111111111111111111111111111111, NatsMsgFlags.Empty, true, false)]
public void Size_and_flags(int size, NatsMsgFlags flags, bool isEmpty, bool hasNoResponders)
{
var msg = new NatsMsg<string> { Size = size, Flags = flags };
Assert.Equal(size, msg.Size);
Assert.Equal(flags, msg.Flags);
Assert.Equal(isEmpty, msg.IsEmpty);
Assert.Equal(hasNoResponders, msg.HasNoResponders);
AssertSizeAndFlags(new NatsMsg<string>
{
Size = size,
Flags = flags,
});

AssertSizeAndFlags(new NatsMsg<string>(
subject: "x",
replyTo: null,
size: size,
headers: null,
data: null,
connection: null,
flags: flags));

return;

void AssertSizeAndFlags(NatsMsg<string> msg)
{
Assert.Equal(size, msg.Size);
Assert.Equal(flags, msg.Flags);
Assert.Equal(isEmpty, msg.IsEmpty);
Assert.Equal(hasNoResponders, msg.HasNoResponders);
}
}

[Fact]
Expand Down

0 comments on commit 7e5b699

Please sign in to comment.