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)));
}
}
}