Browse Source

Add test for HdHomerunManager.WriteSetMessage

Bond_009 4 years ago
parent
commit
f5789483fd

+ 1 - 1
Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunManager.cs

@@ -292,7 +292,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
             return FinishPacket(buffer, offset);
         }
 
-        private static int WriteSetMessage(Span<byte> buffer, int tuner, string name, string value, uint? lockkey)
+        internal static int WriteSetMessage(Span<byte> buffer, int tuner, string name, string value, uint? lockkey)
         {
             var byteName = string.Format(CultureInfo.InvariantCulture, "/tuner{0}/{1}", tuner, name);
             int offset = WriteHeaderAndPayload(buffer, byteName);

+ 31 - 6
tests/Jellyfin.Server.Implementations.Tests/LiveTv/HdHomerunManagerTests.cs

@@ -17,8 +17,9 @@ namespace Jellyfin.Server.Implementations.Tests.LiveTv
             Span<byte> buffer = stackalloc byte[128];
             int len = HdHomerunManager.WriteNullTerminatedString(buffer, string.Empty);
 
-            Assert.Equal(expected.Length, len);
-            Assert.True(expected.SequenceEqual(buffer.Slice(0, len)));
+            Assert.Equal(
+                Convert.ToHexString(expected),
+                Convert.ToHexString(buffer.Slice(0, len)));
         }
 
         [Fact]
@@ -32,8 +33,9 @@ namespace Jellyfin.Server.Implementations.Tests.LiveTv
             Span<byte> buffer = stackalloc byte[128];
             int len = HdHomerunManager.WriteNullTerminatedString(buffer, "The quick");
 
-            Assert.Equal(expected.Length, len);
-            Assert.True(expected.SequenceEqual(buffer.Slice(0, len)));
+            Assert.Equal(
+                Convert.ToHexString(expected),
+                Convert.ToHexString(buffer.Slice(0, len)));
         }
 
         [Fact]
@@ -51,8 +53,31 @@ namespace Jellyfin.Server.Implementations.Tests.LiveTv
             Span<byte> buffer = stackalloc byte[128];
             int len = HdHomerunManager.WriteGetMessage(buffer, 0, "N");
 
-            Assert.Equal(expected.Length, len);
-            Assert.True(expected.SequenceEqual(buffer.Slice(0, len)));
+            Assert.Equal(
+                Convert.ToHexString(expected),
+                Convert.ToHexString(buffer.Slice(0, len)));
+        }
+
+        [Fact]
+        public void WriteSetMessage_NoLockKey_Success()
+        {
+            ReadOnlySpan<byte> expected = stackalloc byte[]
+            {
+                0, 4,
+                0, 20,
+                3,
+                10, (byte)'/', (byte)'t', (byte)'u', (byte)'n', (byte)'e', (byte)'r', (byte)'0', (byte)'/', (byte)'N', 0,
+                4,
+                6, (byte)'v', (byte)'a', (byte)'l', (byte)'u', (byte)'e', 0,
+                0xa9, 0x49, 0xd0, 0x68
+            };
+
+            Span<byte> buffer = stackalloc byte[128];
+            int len = HdHomerunManager.WriteSetMessage(buffer, 0, "N", "value", null);
+
+            Assert.Equal(
+                Convert.ToHexString(expected),
+                Convert.ToHexString(buffer.Slice(0, len)));
         }
     }
 }