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);
     }
 }
Пример #3
0
        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));
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }