Skip to content

Commit e16ac1a

Browse files
authored
Fix NatsSvcServer start time format so that it's no longer culture aware (#374)
Co-authored-by: Niklas Petersen <niklasfp@users.noreply.github.com>
1 parent d267959 commit e16ac1a

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

src/NATS.Client.Services/NatsSvcServer.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public NatsSvcServer(NatsConnection nats, NatsSvcConfig config, CancellationToke
4040
_cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
4141
_channel = Channel.CreateBounded<SvcMsg>(32);
4242
_taskMsgLoop = Task.Run(MsgLoop);
43-
_started = DateTimeOffset.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ");
43+
_started = DateTimeOffset.UtcNow.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffff'Z'");
4444
}
4545

4646
/// <summary>

tests/NATS.Client.Services.Tests/ServicesTests.cs

+28
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Text.Json.Nodes;
2+
using System.Text.RegularExpressions;
23
using NATS.Client.Core.Tests;
34
using NATS.Client.Services.Internal;
45
using NATS.Client.Services.Models;
@@ -322,4 +323,31 @@ await s1.AddEndpointAsync<int>(
322323
Assert.Equal("999", response.Headers?["Nats-Service-Error-Code"]);
323324
Assert.Equal("Missing 'foo' header", response.Headers?["Nats-Service-Error"]);
324325
}
326+
327+
[Fact]
328+
public async Task Service_started_time()
329+
{
330+
var cts = new CancellationTokenSource(TimeSpan.FromSeconds(200));
331+
var cancellationToken = cts.Token;
332+
333+
await using var server = NatsServer.Start();
334+
await using var nats = server.CreateClientConnection();
335+
var svc = new NatsSvcContext(nats);
336+
337+
await using var s1 = await svc.AddServiceAsync("s1", "1.0.0", cancellationToken: cancellationToken);
338+
339+
await s1.AddEndpointAsync<int>(
340+
name: "e1",
341+
handler: async m =>
342+
{
343+
await m.ReplyAsync(m.Data, cancellationToken: cancellationToken);
344+
},
345+
cancellationToken: cancellationToken);
346+
347+
var stats = s1.GetStats();
348+
349+
// Match: 2021-09-01T12:34:56.1234567Z
350+
var formatRegex = new Regex(@"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{7}Z$");
351+
Assert.Matches(formatRegex, stats.Started);
352+
}
325353
}

0 commit comments

Comments
 (0)