HdHomerunManagerTests.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun;
  3. using Xunit;
  4. namespace Jellyfin.Server.Implementations.Tests.LiveTv
  5. {
  6. public class HdHomerunManagerTests
  7. {
  8. [Fact]
  9. public void WriteNullTerminatedString_Empty_Success()
  10. {
  11. ReadOnlySpan<byte> expected = stackalloc byte[]
  12. {
  13. 1, 0
  14. };
  15. Span<byte> buffer = stackalloc byte[128];
  16. int len = HdHomerunManager.WriteNullTerminatedString(buffer, string.Empty);
  17. Assert.Equal(expected.Length, len);
  18. Assert.True(expected.SequenceEqual(buffer.Slice(0, len)));
  19. }
  20. [Fact]
  21. public void WriteNullTerminatedString_Valid_Success()
  22. {
  23. ReadOnlySpan<byte> expected = stackalloc byte[]
  24. {
  25. 10, (byte)'T', (byte)'h', (byte)'e', (byte)' ', (byte)'q', (byte)'u', (byte)'i', (byte)'c', (byte)'k', 0
  26. };
  27. Span<byte> buffer = stackalloc byte[128];
  28. int len = HdHomerunManager.WriteNullTerminatedString(buffer, "The quick");
  29. Assert.Equal(expected.Length, len);
  30. Assert.True(expected.SequenceEqual(buffer.Slice(0, len)));
  31. }
  32. [Fact]
  33. public void WriteGetMessage_Valid_Success()
  34. {
  35. ReadOnlySpan<byte> expected = stackalloc byte[]
  36. {
  37. 0, 4,
  38. 0, 12,
  39. 3,
  40. 10, (byte)'/', (byte)'t', (byte)'u', (byte)'n', (byte)'e', (byte)'r', (byte)'0', (byte)'/', (byte)'N', 0,
  41. 0xc0, 0xc9, 0x87, 0x33
  42. };
  43. Span<byte> buffer = stackalloc byte[128];
  44. int len = HdHomerunManager.WriteGetMessage(buffer, 0, "N");
  45. Assert.Equal(expected.Length, len);
  46. Assert.True(expected.SequenceEqual(buffer.Slice(0, len)));
  47. }
  48. }
  49. }