|
16 | 16 |
|
17 | 17 | #endregion |
18 | 18 |
|
| 19 | +using System; |
19 | 20 | using System.Linq; |
20 | 21 | using System.Security.Cryptography.X509Certificates; |
21 | 22 | using Grpc.AspNetCore.Server.Internal; |
@@ -76,5 +77,28 @@ public void CreateAuthContext_CertWithCommonName_UseCommonNameAsPeerIdentity() |
76 | 77 | var allProperties = authContext.Properties.ToList(); |
77 | 78 | Assert.AreEqual(1, allProperties.Count); |
78 | 79 | } |
| 80 | + |
| 81 | + [TestCase("1H", 36000000000, true)] |
| 82 | + [TestCase("1M", 600000000, true)] |
| 83 | + [TestCase("1S", 10000000, true)] |
| 84 | + [TestCase("1m", 10000, true)] |
| 85 | + [TestCase("1u", 10, true)] |
| 86 | + [TestCase("100n", 1, true)] |
| 87 | + [TestCase("0S", 0, true)] |
| 88 | + [TestCase("", 0, false)] |
| 89 | + [TestCase("5", 0, false)] |
| 90 | + [TestCase("M", 0, false)] |
| 91 | + public void TryDecodeTimeout_WithVariousUnits_ShouldMatchExpected(string timeout, long expectedTicks, bool expectedSuccesfullyDecoded) |
| 92 | + { |
| 93 | + // Arrange |
| 94 | + var expectedTimespan = new TimeSpan(expectedTicks); |
| 95 | + |
| 96 | + // Act |
| 97 | + var successfullyDecoded = GrpcProtocolHelpers.TryDecodeTimeout(timeout, out var timeSpan); |
| 98 | + |
| 99 | + // Assert |
| 100 | + Assert.AreEqual(expectedSuccesfullyDecoded, successfullyDecoded); |
| 101 | + Assert.AreEqual(expectedTimespan, timeSpan); |
| 102 | + } |
79 | 103 | } |
80 | 104 | } |
0 commit comments