public void TryParseTest(string file, string expectedPackageTypesFile) { var packets = ReadCapturedPackets(file, null); var expectedPackageTypes = !string.IsNullOrEmpty(expectedPackageTypesFile) ? GetPackageTypeList <PackageType>(expectedPackageTypesFile) : new List <PackageType>(); var packetManager = new PPPokerPacketManager(); var expectedCommandsIndex = 0; using (ShimsContext.Create()) { foreach (var packet in packets) { ShimDateTime.NowGet = () => packet.CreatedTimeStamp; if (packetManager.TryParse(packet, out IList <PPPokerPackage> packages)) { foreach (var package in packages) { Console.WriteLine(package.PackageType); if (expectedPackageTypes.Count > 0) { Assert.That(package.PackageType, Is.EqualTo(expectedPackageTypes[expectedCommandsIndex++])); AssertPackage(package, packet); } } } } } }
public void PacketIsStartingPacketTest(string file, bool expected) { var packetManager = new PPPokerPacketManager(); var bytes = ReadPacketFile(file); var actual = packetManager.IsStartingPacket(bytes); Assert.That(actual, Is.EqualTo(expected)); }
public void MultipleTryBuildTest(string folder) { var testFolder = Path.Combine(TestDataFolder, folder); DirectoryAssert.Exists(testFolder); var logFiles = Directory.GetFiles(testFolder, "*.txt"); var capturedPackets = new List <CapturedPacket>(); foreach (var logFile in logFiles) { capturedPackets.AddRange(TcpImporterTestUtils.ReadCapturedPackets(logFile, null)); } capturedPackets = capturedPackets.OrderBy(x => x.CreatedTimeStamp).ToList(); var handHistories = new List <HandHistory>(); var packetManager = new PPPokerPacketManager(); var handBuilder = new PPPHandBuilder(); var debugPPPImporter = new DebugPPPImporter(); foreach (var capturedPacket in capturedPackets) { if (!packetManager.TryParse(capturedPacket, out IList <PPPokerPackage> packages)) { continue; } foreach (var package in packages) { if (!PPPImporterStub.IsAllowedPackage(package)) { continue; } package.Timestamp = capturedPacket.CreatedTimeStamp; debugPPPImporter.LogPackage(capturedPacket, package); if (handBuilder.TryBuild(package, out HandHistory handHistory)) { handHistories.Add(handHistory); LogProvider.Log.Info($"Hand #{handHistory.HandId} has been sent. [{package.ClientPort}]"); } } } WriteHandHistoriesToFile(handHistories); Assert.IsTrue(handHistories.Count > 0); }
public void DeserializationTest(string file, string jsonFile) { var bytes = ReadPacketFile(file); var packetManager = new PPPokerPacketManager(); var capturedPacket = new CapturedPacket { Bytes = bytes, CreatedTimeStamp = DateTime.Parse("08/02/2018 12:28:28"), Destination = new IPEndPoint(IPAddress.Parse("192.168.0.105"), 27633), Source = new IPEndPoint(IPAddress.Parse("47.52.92.161"), 4000), SequenceNumber = 1962805251 }; var result = packetManager.TryParse(capturedPacket, out IList <PPPokerPackage> packages); foreach (var package in packages) { object actual = null; switch (package.PackageType) { case PackageType.EnterRoomRSP: actual = SerializationHelper.Deserialize <EnterRoomRSP>(package.Body); break; case PackageType.SitDownBRC: actual = SerializationHelper.Deserialize <SitDownBRC>(package.Body); break; case PackageType.DealerInfoRSP: actual = SerializationHelper.Deserialize <DealerInfoRSP>(package.Body); break; case PackageType.ActionBRC: actual = SerializationHelper.Deserialize <ActionBRC>(package.Body); break; case PackageType.WinnerRSP: actual = SerializationHelper.Deserialize <WinnerRSP>(package.Body); break; } var jsonExpected = File.ReadAllText(Path.Combine(TestDataFolder, jsonFile)); var jsonActual = JsonConvert.SerializeObject(actual, Formatting.Indented, new StringEnumConverter()); Assert.That(jsonActual, Is.EqualTo(jsonExpected)); } }
public void TryParsePacketTest(string file, int expected) { var bytes = ReadPacketFile(file); var packetManager = new PPPokerPacketManager(); var capturedPacket = new CapturedPacket { Bytes = bytes, CreatedTimeStamp = DateTime.Parse("08/02/2018 12:28:28"), Destination = new IPEndPoint(IPAddress.Parse("192.168.0.105"), 27633), Source = new IPEndPoint(IPAddress.Parse("47.52.92.161"), 4000), SequenceNumber = 1962805251 }; var result = packetManager.TryParse(capturedPacket, out IList <PPPokerPackage> actualPackages); Assert.IsTrue(result); Assert.IsNotNull(actualPackages); Assert.That(actualPackages.Count, Is.EqualTo(expected)); }