Example #1
0
        public async Task Should_throw_FileNotFoundException()
        {
            var      testFile = @".\TestData\invalidFilePath.cap";
            FileInfo fi       = new FileInfo(testFile);
            await Assert.ThrowsExceptionAsync <FileNotFoundException>(() => NetMonFileFactory.ParseNetMonFileAsync(testFile, CancellationToken.None, null));

            await Assert.ThrowsExceptionAsync <FileNotFoundException>(() => NetMonFileFactory.ParseNetMonFileAsync(fi, CancellationToken.None, null));
        }
Example #2
0
        public async Task Should_parse_52_ADS_Device_Notification_RequestFramePackets()
        {
            var testFile   = @".\TestData\Valid_Test_Data.cap";
            var netMonFile = await NetMonFileFactory.ParseNetMonFileAsync(testFile, CancellationToken.None, null);

            Assert.AreEqual(netMonFile.FramePackets.Where(packet => packet.Data.AmsHeader.IsRequest && packet.Data.AmsHeader.AmsCommandId == Lib.TcAds.AmsCommandId.ADS_Device_Notification).Count(), 52);
            Assert.AreEqual(netMonFile.FramePackets.Where(packet => packet.Data.AmsHeader.IsResponse && packet.Data.AmsHeader.AmsCommandId == Lib.TcAds.AmsCommandId.ADS_Device_Notification).Count(), 0); // there is no response!
        }
Example #3
0
        public async Task Should_parse_0_ADS_Write_Control_Request_Response_FramePackets()
        {
            var testFile   = @".\TestData\Valid_Test_Data.cap";
            var netMonFile = await NetMonFileFactory.ParseNetMonFileAsync(testFile, CancellationToken.None, null);

            Assert.AreEqual(netMonFile.FramePackets.Where(packet => packet.Data.AmsHeader.IsRequest && packet.Data.AmsHeader.AmsCommandId == Lib.TcAds.AmsCommandId.ADS_Write_Control).Count(), 0);
            Assert.AreEqual(netMonFile.FramePackets.Where(packet => packet.Data.AmsHeader.IsResponse && packet.Data.AmsHeader.AmsCommandId == Lib.TcAds.AmsCommandId.ADS_Write_Control).Count(), 0);
        }
Example #4
0
        public async Task Should_parse_all_710_FramePackets()
        {
            var testFile   = @".\TestData\Valid_Test_Data.cap";
            var netMonFile = await NetMonFileFactory.ParseNetMonFileAsync(testFile, CancellationToken.None, null);

            Assert.AreEqual(netMonFile.FramePackets.Count(), 710);
            netMonFile.FramePackets.ToList().ForEach(packet => Assert.IsTrue(packet.Data.AmsHeader.IsValid));
        }
Example #5
0
        public async Task Should_throw_ArgumentNullException()
        {
            string   nullString = null;
            FileInfo fi         = null;
            await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => NetMonFileFactory.ParseNetMonFileAsync(nullString, CancellationToken.None, null));

            await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => NetMonFileFactory.ParseNetMonFileAsync(string.Empty, CancellationToken.None, null));

            await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => NetMonFileFactory.ParseNetMonFileAsync(fi, CancellationToken.None, null));
        }
Example #6
0
        public async Task Should_log_invalid_Ams_Header_version_3_in_Cap_File()
        {
            var loggerMock = new Mock <ILogger <NetMonFile> >();

            FileInfo fi         = new FileInfo(@".\TestData\Invalid_Ams_Header_DataLength.cap");
            var      netMonFile = await NetMonFileFactory.ParseNetMonFileAsync(fi, CancellationToken.None, loggerMock.Object);

            var expectedException = new FormatException($"Parsed AmsHeader is not valid, Data_Length=255 not allowed.");

            Assert.IsNull(netMonFile);
            loggerMock.VerifyLoggingException($"[ParseCapFile] Error while parsing file \"{fi.Name}\".", expectedException);
        }
Example #7
0
        public async Task Should_log_invalid_Ams_Header_AmsCommandId_in_Cap_File()
        {
            var loggerMock = new Mock <ILogger <NetMonFile> >();

            FileInfo fi         = new FileInfo(@".\TestData\Invalid_Ams_Header_AmsCommandId.cap");
            var      netMonFile = await NetMonFileFactory.ParseNetMonFileAsync(fi, CancellationToken.None, loggerMock.Object);

            var expectedException = new Exception("Fatal Error, no valid constructor found.");

            Assert.IsNull(netMonFile);
            loggerMock.VerifyLoggingException($"[ParseCapFile] Error while parsing file \"{fi.Name}\".", expectedException);
        }
Example #8
0
        public async Task Should_log_invalid_Header_GMBU_in_Cap_File()
        {
            var loggerMock = new Mock <ILogger <NetMonFile> >();

            FileInfo fi         = new FileInfo(@".\TestData\Invalid_Header_GMBU.cap");
            var      netMonFile = await NetMonFileFactory.ParseNetMonFileAsync(fi, CancellationToken.None, loggerMock.Object);

            var expectedException = new FormatException($"Is not a valid NetMon 2.x file format.");

            Assert.IsNull(netMonFile);
            loggerMock.VerifyLoggingException($"[ParseCapFile] Error while parsing file \"{fi.Name}\".", expectedException);
        }
Example #9
0
        public async Task Should_parse_two_FramePackets_ReadRequest_ReadResponse_from_FileInfo()
        {
            FileInfo fi         = new FileInfo(@".\TestData\Valid_ReadRequest.cap");
            var      netMonFile = await NetMonFileFactory.ParseNetMonFileAsync(fi, CancellationToken.None, null);

            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);
        }