public void WarcraftTest_warcraft_xberan33_05_via_FrameworkController2()
        {
            var messagePatterns = new[] // Timestampes, senders and receivers, Text
            {
                new[] { "26.04.2017 15:38:26", "Kobits-Magtheridon", "Channel 2. LocalDefense", "lf mate killng alphas for  Caged Mighty Wolf" },
                new[] { "26.04.2017 15:39:15", "Drulgir", "Channel LocalDefense", "bergruu up" },
                new[] { "26.04.2017 15:39:15", "Oeru", "Channel 3. LookingForGroup", "LFM to kill the invading Horde that have taken over Goldshire!" }
            };

            var infos = new List <FileInfo>
            {
                this.PrepareCaptureForProcessing(SnoopersPcaps.Default.warcraft_xberan33_channel_wdat)
            };

            this.FrameworkController.ExportData(this.AvailableSnoopers, infos, this.CurrentTestBaseDirectory);

            Assert.IsTrue(this.SnooperExports.Count == 1);
            var chanFound = false;

            foreach (var export in this.SnooperExports)
            {
                foreach (var expObject in export.ExportObjects)
                {
                    var message = expObject as SnooperExportedWarcraftMessage;
                    if (message.Type == WarcraftMessageType.Channel)
                    {
                        chanFound = true;
                    }
                }
            }

            Assert.IsTrue(chanFound);

            SnooperExportWarcraft exportedObjectsReference = null;

            foreach (var exportedObjects in this.SnooperExports.ToArray()) //Get WarcraftSnooper exported objects
            {
                if ((exportedObjectsReference = exportedObjects as SnooperExportWarcraft) != null)
                {
                    break;
                }
            }
            Assert.IsNotNull(exportedObjectsReference);

            var exportedObjectBases = exportedObjectsReference.ExportObjects.ToArray();

            Assert.AreEqual(3, exportedObjectBases.Length);

            var messages = exportedObjectBases.Where(i => i is SnooperExportedWarcraftMessage).Cast <SnooperExportedWarcraftMessage>().OrderBy(it => it.TimeStamp).ToArray();

            Assert.AreEqual(3, messages.Length); //Every exported object should be private message
            Assert.AreEqual(messagePatterns.Length, messages.Length);

            for (var i = 0; i < messages.Length; i++)
            {
                Assert.AreEqual(messages[i].TimeStamp.ToString(new CultureInfo("cs-CZ", false)), messagePatterns[i][0]);
                Assert.AreEqual(messages[i].Sender, messagePatterns[i][1]);
                Assert.AreEqual(messages[i].Receiver, messagePatterns[i][2]);
                Assert.AreEqual(messages[i].Text, messagePatterns[i][3]);
            }
        }
        public void WarcraftTest_warcraft_xberan33_04_via_FrameworkController2()
        {
            var messagePatterns = new[] // Timestampes, senders and receivers, Text
            {
                new[] { "26.04.2017 15:13:52", "Current player name", "Some Battle.net friend", "hey, you got a minute?" },
                new[] { "26.04.2017 15:14:12", "Some Battle.net friend", "Current player name", "afther dungon sure :P" },
                new[] { "26.04.2017 15:16:14", "Current player name", "Some Battle.net friend", "sure ill wait, just to inform, this isnt actually neth, its her boyfriend, she allowed me to borrow her character for a while. " },
                new[] { "26.04.2017 15:16:35", "Some Battle.net friend", "Current player name", "npxz" },
                new[] { "26.04.2017 15:16:36", "Current player name", "Some Battle.net friend", "I am working on bachelors thesis related to wow and i need to gather some testing data related to chat" },
                new[] { "26.04.2017 15:17:21", "Current player name", "Some Battle.net friend", "I need to find all chat types in wow.. beggining with say or yell and ending with dunno bg/instance chat" },
                new[] { "26.04.2017 15:17:45", "Some Battle.net friend", "Current player name", "can u come vent afther then=?" },
                new[] { "26.04.2017 15:17:55", "Current player name", "Some Battle.net friend", "So if you could help me out for a few minutes that would be nice" },
                new[] { "26.04.2017 15:18:24", "Current player name", "Some Battle.net friend", "I probably can, just need to find it in this pc" },
                new[] { "26.04.2017 15:19:46", "Current player name", "Some Battle.net friend", "right, im wainting in afk slackers room" }
            };

            var infos = new List <FileInfo>
            {
                this.PrepareCaptureForProcessing(SnoopersPcaps.Default.warcraft_xberan33_bnet_whisper_wdat)
            };

            this.FrameworkController.ExportData(this.AvailableSnoopers, infos, this.CurrentTestBaseDirectory);

            Assert.IsTrue(this.SnooperExports.Count == 1);
            var bnetFound = false;

            foreach (var export in this.SnooperExports)
            {
                foreach (var expObject in export.ExportObjects)
                {
                    var message = expObject as SnooperExportedWarcraftMessage;
                    if (message.Type == WarcraftMessageType.PrivateMessageBnet)
                    {
                        bnetFound = true;
                    }
                }
            }

            Assert.IsTrue(bnetFound);

            SnooperExportWarcraft exportedObjectsReference = null;

            foreach (var exportedObjects in this.SnooperExports.ToArray()) //Get WarcraftSnooper exported objects
            {
                if ((exportedObjectsReference = exportedObjects as SnooperExportWarcraft) != null)
                {
                    break;
                }
            }
            Assert.IsNotNull(exportedObjectsReference);

            var exportedObjectBases = exportedObjectsReference.ExportObjects.ToArray();

            Assert.AreEqual(10, exportedObjectBases.Length);

            var messages = exportedObjectBases.Where(i => i is SnooperExportedWarcraftMessage).Cast <SnooperExportedWarcraftMessage>().OrderBy(it => it.TimeStamp).ToArray();

            Assert.AreEqual(10, messages.Length); //Every exported object should be private message
            Assert.AreEqual(messagePatterns.Length, messages.Length);

            for (var i = 0; i < messages.Length; i++)
            {
                Assert.AreEqual(messages[i].TimeStamp.ToString(new CultureInfo("cs-CZ", false)), messagePatterns[i][0]);
                Assert.AreEqual(messages[i].Sender, messagePatterns[i][1]);
                Assert.AreEqual(messages[i].Receiver, messagePatterns[i][2]);
                Assert.AreEqual(messages[i].Text, messagePatterns[i][3]);
            }
        }