using System; using BWP.ABCClient.B2B; using NUnit.Framework; namespace BWP.ABCClient { [TestFixture] public class MsgUtilTest { [Test] public void ParseReturnMsg() { string msg = "PE1TRz48TWVzc2FnZT48VHJ4UmVzcG9uc2U+PFJldHVybkNvZGU+MDAwMDwvUmV0dXJuQ29kZT48RXJyb3JNZXNzYWdlPjwvRXJyb3JNZXNzYWdlPjxFQ01lcmNoYW50VHlwZT5CMkM8L0VDTWVyY2hhbnRUeXBlPjxNZXJjaGFudElEPjEwMzQ1MjA4Mzk4MDQwNDwvTWVyY2hhbnRJRD48VHJ4VHlwZT5QYXlSZXN1bHQ8L1RyeFR5cGU+PE9yZGVyTm8+VGVzdE9yZGVyPC9PcmRlck5vPjxBbW91bnQ+MTAwLjA8L0Ftb3VudD48QmF0Y2hObz4wMDAwMDE8L0JhdGNoTm8+PFZvdWNoZXJObz4xMjM0NTY8L1ZvdWNoZXJObz48SG9zdERhdGU+MjAwOS8wOS8wODwvSG9zdERhdGU+PEhvc3RUaW1lPjEwOjU1OjUwPC9Ib3N0VGltZT48TWVyY2hhbnRSZW1hcmtzPlRoaXMgaXMgdGVzdCE8L01lcmNoYW50UmVtYXJrcz48UGF5VHlwZT5QQVkwMTwvUGF5VHlwZT48Tm90aWZ5VHlwZT4wPC9Ob3RpZnlUeXBlPjwvVHJ4UmVzcG9uc2U+PC9NZXNzYWdlPjxTaWduYXR1cmUtQWxnb3JpdGhtPlNIQTF3aXRoUlNBPC9TaWduYXR1cmUtQWxnb3JpdGhtPjxTaWduYXR1cmU+SVE4Z2pFSlRvK0FXQWxqWGVhcVVwdW43Z1JCNnNWdEhRSS9pNFdqUTNISExqZmphMTF3RE5VRVUyVzBVRUNsQnp5RFZuc0tRUHE2MmliM21YRjgrSnJZTWdpYW53WDNBNlRJbkxXMXJQTldVV1AwNGl5UVIvTUxuMHNaTjJ1S2JFbU5SWXRURjNPQ0lsTHFEblppYk1tSEZPTzhnektneVBxeEtaUkRRaHRZPTwvU2lnbmF0dXJlPjwvTVNHPg=="; Console.WriteLine(MsgUtil.FromBase64StringToXml(msg)); } [Test] public void SelectMultiNode() { string str = "123134456"; string[] values = MsgUtil.GetMultiInnerXml(str, "//Record"); Assert.AreEqual("123", values[0]); Assert.AreEqual("134", values[1]); Assert.AreEqual("456", values[2]); } [Test] public void MsgToXml() { var msg = FundTransferRequest.New(); var xml = MsgUtil.MsgToBareXml(msg); Console.WriteLine(xml); msg = MsgUtil.ParseXmlToMsg(xml); Console.WriteLine(msg.Message.Merchant.ECMerchantType); var response = new FundTransferResponse(); response.Message = new FundTransferResponse.MessageContent(); response.Message.TrxResponse = new FundTransferResponse.TrxResponseContent(); response.Message.TrxResponse.ReturnCode = "0000"; xml = MsgUtil.MsgToBareXml(response); Console.WriteLine(xml); var obj = MsgUtil.ParseXmlToMsg(xml); Assert.AreEqual("0000", obj.Message.TrxResponse.ReturnCode); } [Test] public void GetInnerXml() { var msg = "B2C103452083980409PayReq6343338239222187452540112011/02/1516:02:29http://119.167.225.52/B2/InternetSale/Pub/B2CReceive.aspx?id=10821211http://119.167.225.52/B2/InternetSale/Pub/B2CReceive.aspx1SHA1withRSANj7TTt4jyHTH93TekdWXr98tFKbjz/aRx3PBaE0SA6ns4bwqLbpI/27ljN90tElzqVnZWyHIKjDjo25SpPkgXlCsQGHtQcLbA6ZVXVqH18SjLxc4baUyEokMlnpbPYHAiOufOG3Ss8bI3/QlCbESV+7aeOwBfkQESAYvzsZWSWE="; var expectmsg = "B2C103452083980409PayReq6343338239222187452540112011/02/1516:02:29http://119.167.225.52/B2/InternetSale/Pub/B2CReceive.aspx?id=10821211http://119.167.225.52/B2/InternetSale/Pub/B2CReceive.aspx1"; Assert.AreEqual(expectmsg, MsgUtil.GetInnerXml(msg, "Message")); expectmsg = "Nj7TTt4jyHTH93TekdWXr98tFKbjz/aRx3PBaE0SA6ns4bwqLbpI/27ljN90tElzqVnZWyHIKjDjo25SpPkgXlCsQGHtQcLbA6ZVXVqH18SjLxc4baUyEokMlnpbPYHAiOufOG3Ss8bI3/QlCbESV+7aeOwBfkQESAYvzsZWSWE="; Assert.AreEqual(expectmsg, MsgUtil.GetInnerXml(msg, "Signature")); } [Test] public void CompressDeCompress() { string str = "B2C1034520839804090000交易成功PayReq634333823922218745https://easyabc.95599.cn/b2c/NotCheckStatus/PaymentModeAct.ebf?TOKEN=12977568750460430844254011"; Assert.AreEqual(str, MsgUtil.DeCompress(MsgUtil.Compress(str))); } } }