private void CheckQueryAndAnswer(ushort messageID, IReadOnlyList <ushort> flags, IReadOnlyList <string> messages, DNSParseMsg.DNSResponseType responseType, string filePath) { this.FrameworkController.ProcessCapture(this.PrepareCaptureForProcessing(filePath)); var conversations = this.L7Conversations.ToArray(); this.FrameworkController.ExportData(this.SnoopersToUse, conversations, this.CurrentTestBaseDirectory, true); SnooperExportDNS exportedObjectsReference = null; foreach (var exportedObjects in this.SnooperExports.ToArray()) //Get SnooperDNS exported objects { if ((exportedObjectsReference = exportedObjects as SnooperExportDNS) != null) { var objectDns = (SnooperExportedDataObjectDNS)exportedObjectsReference.ExportObjects[0]; if (objectDns.MessageId == messageID) { break; } else { exportedObjectsReference = null; } } } Assert.IsNotNull(exportedObjectsReference); Assert.AreEqual(2, exportedObjectsReference.ExportObjects.Count); int i = 1, j = 0; foreach (var snooperExportedObjectBase in exportedObjectsReference.ExportObjects.ToArray()) { var message = (SnooperExportedDataObjectDNS)snooperExportedObjectBase; Assert.AreEqual(message.MessageId, messageID); Assert.AreEqual(message.Flags, flags[j++]); Assert.AreEqual(message.Queries.SerializedValue, messages[0]); switch (responseType) { case DNSParseMsg.DNSResponseType.ANSWER: Assert.AreEqual(messages[i++], message.Answer.SerializedValue); break; case DNSParseMsg.DNSResponseType.ADDITIONAL: Assert.AreEqual(messages[i++], message.Additional.SerializedValue); break; } } }
private void CheckQueryAndAnswer(ushort messageID, IReadOnlyList <ushort> flags, IReadOnlyList <string> messages, DNSParseMsg.DNSResponseType responseType, string filePath) { this.LoadPcapAndExportData(filePath); SnooperExportDNS exportedObjectsReference = null; foreach (var exportedObjects in this.SnooperExports.ToArray()) //Get SnooperDNS exported objects { if ((exportedObjectsReference = exportedObjects as SnooperExportDNS) != null) { var objectDns = (SnooperExportedDataObjectDNS)exportedObjectsReference.ExportObjects[0]; if (objectDns.MessageId == messageID) { break; } else { exportedObjectsReference = null; } } } Assert.IsNotNull(exportedObjectsReference); Assert.AreEqual(2, exportedObjectsReference.ExportObjects.Count); int i = 1, j = 0; foreach (var snooperExportedObjectBase in exportedObjectsReference.ExportObjects.ToArray()) { var message = (SnooperExportedDataObjectDNS)snooperExportedObjectBase; Assert.AreEqual(message.MessageId, messageID); Assert.AreEqual(message.Flags, flags[j++]); Assert.AreEqual(message.Queries.SerializedValue, messages[0]); switch (responseType) { case DNSParseMsg.DNSResponseType.ANSWER: Assert.AreEqual(messages[i++], message.Answer.SerializedValue); break; case DNSParseMsg.DNSResponseType.ADDITIONAL: Assert.AreEqual(messages[i++], message.Additional.SerializedValue); break; } } }