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