using GeoVLog.Core.Parsers; using System; using System.Text; using Xunit; namespace GeoVLog.Tests.Parsers; public class MagParserTests { [Fact] [Trait("Category", "Core")] public void ParsesValidLine() { var msg = Encoding.ASCII.GetBytes("$ 30614.050,1521"); var ts = new DateTime(2025, 1, 1, 0, 0, 0, DateTimeKind.Utc); var ok = MagParser.TryParse(msg, ts, out var parsed); Assert.True(ok); Assert.Equal(ts, parsed.TimestampUtc); Assert.Equal(30614.050, parsed.MagneticFieldNT!.Value, 3); Assert.Equal(1521, parsed.SignalLevel!.Value); } [Fact] [Trait("Category", "Core")] public void RejectsMissingDollar() { var msg = Encoding.ASCII.GetBytes("30614.050,1521"); Assert.False(MagParser.TryParse(msg, DateTime.UtcNow, out _)); } }