//#region License
//// Copyright (C) 2020 Reetus
////
//// This program is free software: you can redistribute it and/or modify
//// it under the terms of the GNU General Public License as published by
//// the Free Software Foundation, either version 3 of the License, or
//// (at your option) any later version.
////
//// This program is distributed in the hope that it will be useful,
//// but WITHOUT ANY WARRANTY; without even the implied warranty of
//// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//// GNU General Public License for more details.
////
//// You should have received a copy of the GNU General Public License
//// along with this program. If not, see .
//#endregion
//using System;
//using System.Collections.Generic;
//using System.IO;
//using System.Linq;
//using Assistant;
//using ClassicAssist.UO.Data;
//using ClassicAssist.UO.Network;
//using ClassicAssist.UO.Network.PacketFilter;
//using ClassicAssist.UO.Objects;
//using Microsoft.VisualStudio.TestTools.UnitTesting;
//using Newtonsoft.Json;
//using Newtonsoft.Json.Linq;
//namespace ClassicAssist.Tests
//{
// [TestClass]
// public class ReplayPacketLog
// {
// [TestMethod]
// public void CheckPoisonStatus()
// {
// AppDomain appDomain = AppDomain.CreateDomain( "CheckPoisonStatus", AppDomain.CurrentDomain.Evidence,
// AppDomain.CurrentDomain.SetupInformation );
// appDomain.DoCallBack( () =>
// {
// Engine.ClientVersion = new Version( 5, 0, 9, 1 );
// string fileName = @"C:\Users\johns\source\repos\ClassicAssist\Output\net48\export.packets.json";
// if ( !File.Exists( fileName ) )
// {
// return;
// }
// IEnumerable packetEntries = ParseLog( fileName );
// byte[] packetIds = { 0x20, 0x77, 0x78 };
// IEnumerable filteredEntries = packetEntries.Where( i =>
// packetIds.Contains( i.Data[0] ) && i.Direction == PacketDirection.Incoming );
// IncomingPacketHandlers.Initialize();
// foreach ( PacketEntry filteredEntry in filteredEntries )
// {
// PacketHandler handler = IncomingPacketHandlers.GetHandler( filteredEntry.Data[0] );
// handler?.OnReceive( new PacketReader( filteredEntry.Data, filteredEntry.Data.Length, true ) );
// Mobile mobile = Engine.Mobiles.GetMobile( 0x002549bb );
// Assert.IsTrue( mobile.IsPoisoned );
// }
// } );
// }
// private static IEnumerable ParseLog( string fileName )
// {
// string text = File.ReadAllText( fileName );
// List packets = new List();
// JObject[] data = JsonConvert.DeserializeObject( text );
// if ( data == null )
// {
// return packets;
// }
// packets.AddRange( from entry in data
// where entry != null
// select new PacketEntry
// {
// Title = entry?["Title"].ToObject() ?? string.Empty,
// Direction = entry["Direction"].ToObject(),
// DateTime = entry["DateTime"].ToObject(),
// Data = Convert.FromBase64String( entry["Base64"].ToObject() )
// } );
// return packets;
// }
// public class PacketEntry
// {
// public byte[] Data { get; set; }
// public DateTime DateTime { get; set; }
// public PacketDirection Direction { get; set; }
// public string Title { get; set; }
// }
// }
//}