static async Task Main(string[] args) { using (var serviceProvider = new ServiceCollection() .AddLogging(cfg => cfg.AddConsole()) .Configure <LoggerFilterOptions>(cfg => cfg.MinLevel = LogLevel.Debug) .BuildServiceProvider()) { var logger = serviceProvider.GetService <ILogger <Program> >(); try { var capFilePath = @".\DemoFiles\Demo.cap"; var(ok, nmf) = await NetMonFileFactory.TryParseNetMonFileAsync(capFilePath, CancellationToken.None, logger); if (ok) { nmf.FramePackets.ToList().ForEach(frame => Console.WriteLine($"{frame.Index} {frame.Header}, {frame.Data}")); } } catch (Exception ex) { logger.LogError(ex, "Ooops ..."); } } Console.WriteLine("Press any key to close..."); Console.ReadKey(); }
private void ParseNetMonFile(string path) { // we have to sync here var(ok, packets) = NetMonFileFactory.TryParseNetMonFileAsync(new FileInfo(path), CancellationToken.None, null).GetAwaiter().GetResult(); if (ok) { BehaviorList = ConvertToBehaviorList(packets); } }
public async Task Should_add_one_ReadIndicationBehavior_to_BehaviorList_from_NetMonFile() { var capFilePath = @".\TestFiles\ReadRequestPort10k.cap"; var(ok, nmf) = await NetMonFileFactory.TryParseNetMonFileAsync(capFilePath, CancellationToken.None, null); Assert.IsTrue(ok); var rpe = new ReplayExtension(nmf); Assert.IsNotNull(rpe.BehaviorList); Assert.AreEqual(rpe.BehaviorList.Count(), 1); Assert.IsInstanceOfType(rpe.BehaviorList.First(), typeof(ReadIndicationBehavior)); }
public async Task Should_fail_TryParse_two_FramePackets_ReadRequest_ReadResponse_from_FileInfo() { FileInfo fi = new FileInfo(@".\TestData\Invalid_ReadRequest.cap"); var(ok, netMonFile) = await NetMonFileFactory.TryParseNetMonFileAsync(fi, CancellationToken.None, null); Assert.IsFalse(ok); Assert.IsNull(netMonFile); fi = new FileInfo(@".\TestData\FileDoesNotExist.cap"); (ok, netMonFile) = await NetMonFileFactory.TryParseNetMonFileAsync(fi, CancellationToken.None, null); Assert.IsFalse(ok); Assert.IsNull(netMonFile); }
public async Task Should_fail_TryParse_two_FramePackets_ReadRequest_ReadResponse_from_string() { var testFile = @".\TestData\Invalid_ReadRequest.cap"; var(ok, netMonFile) = await NetMonFileFactory.TryParseNetMonFileAsync(testFile, CancellationToken.None, null); Assert.IsFalse(ok); Assert.IsNull(netMonFile); testFile = @".\TestData\FileDoesNotExist.cap"; (ok, netMonFile) = await NetMonFileFactory.TryParseNetMonFileAsync(testFile, CancellationToken.None, null); Assert.IsFalse(ok); Assert.IsNull(netMonFile); }
public async Task Should_TryParse_two_FramePackets_ReadRequest_ReadResponse_from_FileInfo() { FileInfo fi = new FileInfo(@".\TestData\Valid_ReadRequest.cap"); var(ok, netMonFile) = await NetMonFileFactory.TryParseNetMonFileAsync(fi, CancellationToken.None, null); Assert.IsTrue(ok); Assert.IsTrue(netMonFile.FramePackets.Count() == 2); Assert.IsTrue(netMonFile.FramePackets.ElementAt(0).Data.AmsHeader.IsValid); Assert.IsTrue(netMonFile.FramePackets.ElementAt(0).Data.AmsHeader.AmsCommandId == Lib.TcAds.AmsCommandId.ADS_Read); Assert.IsTrue(netMonFile.FramePackets.ElementAt(0).Data.AmsHeader.IsRequest); Assert.IsTrue(netMonFile.FramePackets.ElementAt(1).Data.AmsHeader.IsValid); Assert.IsTrue(netMonFile.FramePackets.ElementAt(1).Data.AmsHeader.AmsCommandId == Lib.TcAds.AmsCommandId.ADS_Read); Assert.IsTrue(netMonFile.FramePackets.ElementAt(1).Data.AmsHeader.IsResponse); }
public async Task Should_fail_TryParse_two_FramePackets_with_invalid_arguments() { var(ok, netMonFile) = await NetMonFileFactory.TryParseNetMonFileAsync(pathToCap : null, CancellationToken.None, null); Assert.IsFalse(ok); Assert.IsNull(netMonFile); (ok, netMonFile) = await NetMonFileFactory.TryParseNetMonFileAsync(string.Empty, CancellationToken.None, null); Assert.IsFalse(ok); Assert.IsNull(netMonFile); (ok, netMonFile) = await NetMonFileFactory.TryParseNetMonFileAsync(fi : null, CancellationToken.None, null); Assert.IsFalse(ok); Assert.IsNull(netMonFile); }