public void BuildPacketFromBytes() { // Arrange var originalPacket = new RconPacket(PacketType.Auth, "password"); // Act var buffer = originalPacket.GetBytes(); var parsedPacket = RconPacket.FromBytes(buffer); // Assert Assert.IsTrue(parsedPacket.Body.Equals(originalPacket.Body)); Assert.IsTrue(parsedPacket.Id.Equals(originalPacket.Id)); }
public Task SendAsync(ReadOnlyMemory <byte> payload) { var request = RconPacket.FromBytes(payload.ToArray()); switch (request.Type) { case PacketType.Auth: pendingResponses.Add(RconPacket.Create(PacketType.Response, "").ToBytes()); pendingResponses.Add(RconPacket.Create(request.Body.Equals("valid") ? request.Id : -1, PacketType.AuthResponse, "").ToBytes()); break; case PacketType.ExecCommand: pendingResponses.Add(RconPacket.Create(PacketType.Response, "This will be a ve").ToBytes()); pendingResponses.Add(RconPacket.Create(PacketType.Response, "ry long message").ToBytes()); break; case PacketType.Response: pendingResponses.Add(RconPacket.Create(0, PacketType.Response, "").ToBytes()); pendingResponses.Add(RconPacket.Create(0, PacketType.Response, "\u0001").ToBytes()); break; } return(Task.CompletedTask); }
public Task SendAsync(ReadOnlyMemory <byte> payload) { incomingRequests.Add(RconPacket.FromBytes(payload.ToArray())); return(Task.CompletedTask); }