public void CardNumberIsEncodedCorrectly(string cardNumber) { var mPackager = new ISOMessagePackager(logger, "titp.xml"); // initialize from default visa packager that is embeded as a resource in the library var m = new ISOMessage(logger, mPackager); m.Set(0, "0100"); m.Set(2, cardNumber); m.Set(3, "000000"); var packed = m.Pack(); m.UnPack(packed); var hexBytes = ISOUtils.Bytes2Hex(packed); // header(TPDU) msgtype bitmap string expectedHexBytes = "0000000000" + "0100" + "6000000000000000"; if (cardNumber.Length % 2 != 0) { expectedHexBytes += cardNumber.Length.ToString().PadLeft(2, '0') + cardNumber + "F" + "000000"; } else { expectedHexBytes += cardNumber.Length.ToString().PadLeft(2, '0') + cardNumber + "000000"; } Assert.Equal(cardNumber, m.GetFieldValue(2)); Assert.Equal(expectedHexBytes, hexBytes); }
public void GlobalSetup() { packedBytes = new byte[2048]; logger = new Microsoft.Extensions.Logging.Abstractions.NullLogger <ISOUtilsTest>(); mPackager = new ISOMessagePackager(logger); // initialize from default visa packager that is embeded as a resource in the library }
/// <summary> /// /// </summary> /// <param name="logger"></param> /// <param name="isoMessagePackager"></param> public ISOMessage(ILogger logger, ISOMessagePackager isoMessagePackager) : base(logger, 0) { m_isoMesssagePackager = isoMessagePackager; m_isoMessageFields = new ISOMessageFields(Logger, m_isoMesssagePackager.GetISOMessageFieldsPackager(), 0); m_isoHeaderPackager = new ISOHeaderVisaPackager(Logger); // based on isoHeaderPackager storage class initialize the correct ISOHeader m_isoHeader = new ISOHeaderVisa(Logger, m_isoHeaderPackager); m_totalFields = ((ISOMessagePackager)m_isoMesssagePackager).GetTotalFields(); }
public void BitmapIsSameAsField_1() { ISOFieldBitmap bitmapOnly = new ISOFieldBitmap(new Microsoft.Extensions.Logging.Abstractions.NullLogger <BitmapTests>()); bitmapOnly.SetBit(0); bitmapOnly.SetBit(2); bitmapOnly.SetBit(3); bitmapOnly.SetBit(4); bitmapOnly.SetBit(7); bitmapOnly.SetBit(11); bitmapOnly.SetBit(12); bitmapOnly.SetBit(14); bitmapOnly.SetBit(18); bitmapOnly.SetBit(19); bitmapOnly.SetBit(22); bitmapOnly.SetBit(25); bitmapOnly.SetBit(37); var mPackager = new ISOMessagePackager(logger); // initialize from default visa packager that is embeded as a resource in the library var m = new ISOMessage(logger, mPackager); m.Set(0, "0100"); m.Set(2, "40004000400040001"); m.Set(3, "000000"); m.Set(4, "000000002900"); m.Set(7, "1231231233"); m.Set(11, "123123"); m.Set(12, "193012"); m.Set(14, "1219"); m.Set(18, "5999"); m.Set(19, "196"); m.Set(22, "9010"); m.Set(25, "23"); m.Set(37, "123123123123"); var bitmap = m.GetField(1) as ISO8583Net.Field.ISOFieldBitmap; var bmOnlybytes = bitmapOnly.GetByteArray(); var bmBytes = bitmap.GetByteArray(); for (int i = 0; i < bmOnlybytes.Length; i++) { Assert.Equal(bmBytes[i], bmOnlybytes[i]); } }
/// <summary> /// /// </summary> /// <param name="logger"></param> /// <param name="messagePackager"></param> /// <param name="isoHeaderPackager"></param> //public ISOMessage(ILogger logger, ISOMessagePackager messagePackager, ISOHeaderPackager isoHeaderPackager) : base(logger, 0) //{ // m_isoMesssagePackager = messagePackager; // m_isoMessageFields = new ISOMessageFields(Logger, m_isoMesssagePackager.GetISOMessageFieldsPackager(), 0); // m_isoHeader = ISOPackagerLoader.GetMessageHeader(m_isoMesssagePackager.GetISOMessageFieldsPackager().HeaderPackager, logger); // // based on isoHeaderPackager storage class initialize the correct ISOHeader // //m_isoHeaderPackager = isoHeaderPackager; // //m_isoHeader = new ISOHeaderVisa(Logger, m_isoHeaderPackager); // m_totalFields = ((ISOMessagePackager)m_isoMesssagePackager).GetTotalFields(); //} /// <summary> /// /// </summary> /// <param name="logger"></param> /// <param name="isoMessagePackager"></param> public ISOMessage(ILogger logger, ISOMessagePackager isoMessagePackager) : base(logger, 0) { m_isoMesssagePackager = isoMessagePackager; m_isoMessageFields = new ISOMessageFields(Logger, m_isoMesssagePackager.GetISOMessageFieldsPackager(), 0); var headerResult = ISOPackagerLoader.GetMessageHeaderAndPackager(isoMessagePackager.GetISOMessageFieldsPackager().HeaderPackager, Logger); m_isoHeader = headerResult.Header; m_isoHeaderPackager = headerResult.Packager; //m_isoHeaderPackager = new ISOHeaderVisaPackager(Logger); // based on isoHeaderPackager storage class initialize the correct ISOHeader //m_isoHeader = new ISOHeaderVisa(Logger, m_isoHeaderPackager); m_totalFields = (m_isoMesssagePackager).GetTotalFields(); }
public void TerminalIdIsEncodedCorrectly(string terminalId) { var mPackager = new ISOMessagePackager(logger, "titp.xml"); // initialize from default visa packager that is embeded as a resource in the library var m = new ISOMessage(logger, mPackager); m.Set(0, "0100"); m.Set(2, "4598890000000004"); m.Set(3, "000000"); m.Set(41, terminalId); var packed = m.Pack(); var hexBytes = ISOUtils.Bytes2Hex(packed); m.UnPack(packed); // header(TPDU) msgtype bitmap string expectedHexBytes = "0000000000" + "0100" + "6000000000800000" + "164598890000000004" + "000000" + ToASCIIHexString(terminalId.PadRight(8, ' ')); Assert.Equal(terminalId.PadRight(8, ' '), m.GetFieldValue(41)); Assert.Equal(expectedHexBytes, hexBytes); }
public void GlobalSetup() { logger = new Microsoft.Extensions.Logging.Abstractions.NullLogger <BitmapTest>(); mPackager = new ISOMessagePackager(logger); // initialize from default visa packager that is embeded as a resource in the library m = new ISOMessage(logger, mPackager); m.Set(0, "0100"); m.Set(2, "40004000400040001"); m.Set(3, "000000"); m.Set(4, "000000002900"); m.Set(7, "1231231233"); m.Set(11, "123123"); m.Set(12, "193012"); m.Set(14, "1219"); m.Set(18, "5999"); m.Set(19, "196"); m.Set(22, "9010"); m.Set(25, "23"); m.Set(37, "123123123123"); }
static void Main(string[] args) { ISOMessagePackager mPackager = new ISOMessagePackager(logger); ISOMessage m = new ISOMessage(logger, mPackager); m.Set(0, "0100"); m.Set(2, "4000400040004001"); m.Set(3, "300000"); m.Set(4, "000000002900"); m.Set(7, "1234567890"); m.Set(11, "123456"); m.Set(12, "193012"); m.Set(14, "1219"); m.Set(18, "5999"); m.Set(19, "196"); m.Set(22, "9010"); m.Set(25, "23"); m.Set(37, "123456789012"); m.Set(62, 1, "Y"); m.Set(63, 1, "1222"); m.Set(63, 3, "9999"); m.Set(64, "ABCDEF1234567890"); m.Set(70, "123"); m.Set(132, "ABABABAB"); Log.Debug(m.ToString()); byte[] pBytes = m.Pack(); Log.Information("Bytes: \n" + ISOUtils.PrintHex(pBytes, pBytes.Length)); ISOMessage u = new ISOMessage(logger, mPackager); u.UnPack(pBytes); Log.Debug(u.ToString()); }
public void ParseVisaMessage() { var mPackager = new ISOMessagePackager(logger); // initialize from default visa packager that is embeded as a resource in the library var m = new ISOMessage(logger, mPackager); /* * i000:[0110] * i002:[4598890000000004] * i003:[000000] * i004:[000000004000] * i007:[1028080759] * i011:[000001] * i012:[100759] * i013:[1028] * i019:[196] * i025:[00] * i032:[123456] * i037:[000000000001] * i039:[00] * i041:[00002638] * i042:[000000000219854] * i049:[978] * */ m.Set(0, "0110"); m.Set(2, "4598890000000004"); m.Set(3, "000000"); m.Set(4, "000000004000"); m.Set(7, "1028080759"); m.Set(11, "000001"); m.Set(12, "100759"); m.Set(13, "1028"); m.Set(19, "196"); m.Set(25, "00"); m.Set(32, "123456"); m.Set(37, "000000000001"); m.Set(39, "00"); m.Set(41, "00002638"); m.Set(42, "000000000219854"); m.Set(49, "978"); var messagePacked = m.Pack(); var hexBytes = ISOUtils.Bytes2Hex(messagePacked); var newMessagePacked = ISOUtils.HexToByteArray(hexBytes); Assert.Equal(messagePacked, newMessagePacked); // "160000006D00000000000000000000000000000000000110723820810AC080001045988900000000040000000000000040001028080759000001100759102801960006123456F0F0F0F0F0F0F0F0F0F0F0F1F0F0F0F0F0F0F2F6F3F8F0F0F0F0F0F0F0F0F0F2F1F9F8F5F40978"; string hexBytesExpected = "160000006D00000000000000000000000000000000000110723820810AC080001045988900000000040000000000000040001028080759000001100759102801960006123456F0F0F0F0F0F0F0F0F0F0F0F1F0F0F0F0F0F0F2F6F3F8F0F0F0F0F0F0F0F0F0F2F1F9F8F5F40978"; Assert.Equal(hexBytesExpected, hexBytes); var newMessage = new ISOMessage(logger, mPackager); newMessage.UnPack(messagePacked); Assert.Equal(m.GetFieldValue(0), newMessage.GetFieldValue(0)); Assert.Equal(m.GetFieldValue(2), newMessage.GetFieldValue(2)); Assert.Equal(m.GetFieldValue(3), newMessage.GetFieldValue(3)); Assert.Equal(m.GetFieldValue(4), newMessage.GetFieldValue(4)); Assert.Equal(m.GetFieldValue(7), newMessage.GetFieldValue(7)); Assert.Equal(m.GetFieldValue(11), newMessage.GetFieldValue(11)); Assert.Equal(m.GetFieldValue(12), newMessage.GetFieldValue(12)); Assert.Equal(m.GetFieldValue(13), newMessage.GetFieldValue(13)); Assert.Equal(m.GetFieldValue(19), newMessage.GetFieldValue(19)); Assert.Equal(m.GetFieldValue(25), newMessage.GetFieldValue(25)); Assert.Equal(m.GetFieldValue(32), newMessage.GetFieldValue(32)); Assert.Equal(m.GetFieldValue(37), newMessage.GetFieldValue(37)); Assert.Equal(m.GetFieldValue(39), newMessage.GetFieldValue(39)); Assert.Equal(m.GetFieldValue(41), newMessage.GetFieldValue(41)); Assert.Equal(m.GetFieldValue(42), newMessage.GetFieldValue(42)); Assert.Equal(m.GetFieldValue(49), newMessage.GetFieldValue(49)); }