HdHomerunManagerTests.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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(
  18. Convert.ToHexString(expected),
  19. Convert.ToHexString(buffer.Slice(0, len)));
  20. }
  21. [Fact]
  22. public void WriteNullTerminatedString_Valid_Success()
  23. {
  24. ReadOnlySpan<byte> expected = stackalloc byte[]
  25. {
  26. 10, (byte)'T', (byte)'h', (byte)'e', (byte)' ', (byte)'q', (byte)'u', (byte)'i', (byte)'c', (byte)'k', 0
  27. };
  28. Span<byte> buffer = stackalloc byte[128];
  29. int len = HdHomerunManager.WriteNullTerminatedString(buffer, "The quick");
  30. Assert.Equal(
  31. Convert.ToHexString(expected),
  32. Convert.ToHexString(buffer.Slice(0, len)));
  33. }
  34. [Fact]
  35. public void WriteGetMessage_Valid_Success()
  36. {
  37. ReadOnlySpan<byte> expected = stackalloc byte[]
  38. {
  39. 0, 4,
  40. 0, 12,
  41. 3,
  42. 10, (byte)'/', (byte)'t', (byte)'u', (byte)'n', (byte)'e', (byte)'r', (byte)'0', (byte)'/', (byte)'N', 0,
  43. 0xc0, 0xc9, 0x87, 0x33
  44. };
  45. Span<byte> buffer = stackalloc byte[128];
  46. int len = HdHomerunManager.WriteGetMessage(buffer, 0, "N");
  47. Assert.Equal(
  48. Convert.ToHexString(expected),
  49. Convert.ToHexString(buffer.Slice(0, len)));
  50. }
  51. [Fact]
  52. public void WriteSetMessage_NoLockKey_Success()
  53. {
  54. ReadOnlySpan<byte> expected = stackalloc byte[]
  55. {
  56. 0, 4,
  57. 0, 20,
  58. 3,
  59. 10, (byte)'/', (byte)'t', (byte)'u', (byte)'n', (byte)'e', (byte)'r', (byte)'0', (byte)'/', (byte)'N', 0,
  60. 4,
  61. 6, (byte)'v', (byte)'a', (byte)'l', (byte)'u', (byte)'e', 0,
  62. 0xa9, 0x49, 0xd0, 0x68
  63. };
  64. Span<byte> buffer = stackalloc byte[128];
  65. int len = HdHomerunManager.WriteSetMessage(buffer, 0, "N", "value", null);
  66. Assert.Equal(
  67. Convert.ToHexString(expected),
  68. Convert.ToHexString(buffer.Slice(0, len)));
  69. }
  70. }
  71. }