public void Parse() { ParserContext parserContext = new ParserContext( ParserContext.DefaultBufferSize); BitMapFieldFormatter bitmapFormatter = new BitMapFieldFormatter( 0, 1, 64, HexadecimalBinaryEncoder.GetInstance()); BitMapField bitmap = ( BitMapField)bitmapFormatter.Parse( ref parserContext); Assert.IsNull(bitmap); parserContext.Write("12082020"); bitmap = ( BitMapField)bitmapFormatter.Parse(ref parserContext); Assert.IsTrue(parserContext.DataLength == 8); Assert.IsNull(bitmap); parserContext.Write("10CA118"); bitmap = ( BitMapField)bitmapFormatter.Parse(ref parserContext); Assert.IsTrue(parserContext.DataLength == 15); Assert.IsNull(bitmap); parserContext.Write("3"); bitmap = ( BitMapField)bitmapFormatter.Parse(ref parserContext); Assert.IsTrue(parserContext.DataLength == 0); Assert.IsNotNull(bitmap); byte[] referenceBitmap = { 0x12, 0x08, 0x20, 0x20, 0x10, 0xCA, 0x11, 0x83 }; byte[] bitmapValue = bitmap.GetBytes(); for (int i = 0; i < bitmapValue.Length; i++) { Assert.IsTrue(bitmapValue[i] == referenceBitmap[i]); } }
public void SetUp() { _encoder = HexadecimalBinaryEncoder.GetInstance(); _data1 = Encoding.UTF7.GetBytes("123456789"); _encodedData1 = Encoding.UTF7.GetBytes("313233343536373839"); _data2 = new byte[] { 0xFE, 0xDC, 0xBA, 0x09, 0x87, 0x65, 0x43, 0x21, 0x0 }; _encodedData2 = Encoding.UTF7.GetBytes("FEDCBA098765432100"); Assert.IsNotNull(_encoder); }
public void Format() { FormatterContext formatterContext = new FormatterContext( FormatterContext.DefaultBufferSize); BitMapField bitmap = new BitMapField(0, 1, 64); BitMapFieldFormatter bitmapFormatter = new BitMapFieldFormatter( 0, 1, 64, HexadecimalBinaryEncoder.GetInstance()); bitmapFormatter.Format(bitmap, ref formatterContext); Assert.IsTrue(formatterContext.GetDataAsString().Equals( "0000000000000000")); formatterContext.Clear(); int[] fields = { 4, 7, 13, 19, 27, 36, 41, 42, 45, 47, 52, 56, 57, 63, 64 }; for (int i = 0; i < fields.Length; i++) { bitmap.Set(fields[i], true); } bitmapFormatter.Format(bitmap, ref formatterContext); Assert.IsTrue(formatterContext.GetDataAsString().Equals( "1208202010CA1183")); }
/// <summary> /// It initializes the fields formatters for this message formatter. /// </summary> private void SetupFields() { MessageTypeIdentifierFormatter = new StringFieldFormatter( -1, new FixedLengthManager(4), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Message type identifier"); FieldFormatters.Add(new BitMapFieldFormatter(0, 1, 64, HexadecimalBinaryEncoder.GetInstance(), "Primary bitmap")); FieldFormatters.Add(new BitMapFieldFormatter(1, 65, 128, HexadecimalBinaryEncoder.GetInstance(), "Secondary bitmap")); FieldFormatters.Add(new StringFieldFormatter( 2, new VariableLengthManager(0, 19, StringLengthEncoder.GetInstance(19)), StringEncoder.GetInstance(), NumericValidator.GetInstance(), "Primary Account Number")); FieldFormatters.Add(new StringFieldFormatter( 3, new FixedLengthManager(6), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Processing Code")); FieldFormatters.Add(new StringFieldFormatter( 4, new FixedLengthManager(12), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Transaction amount")); FieldFormatters.Add(new StringFieldFormatter( 5, new FixedLengthManager(12), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Reconciliation amount")); FieldFormatters.Add(new StringFieldFormatter( 6, new FixedLengthManager(12), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Cardholder billing amount")); FieldFormatters.Add(new StringFieldFormatter( 7, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Transmission date and time")); FieldFormatters.Add(new StringFieldFormatter( 8, new FixedLengthManager(8), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Cardholder billing fee amount")); FieldFormatters.Add(new StringFieldFormatter( 9, new FixedLengthManager(8), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Reconciliation conversion rate")); FieldFormatters.Add(new StringFieldFormatter( 10, new FixedLengthManager(8), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Cardholder billing conversion rate")); FieldFormatters.Add(new StringFieldFormatter( 11, new FixedLengthManager(6), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Systems trace audit number")); FieldFormatters.Add(new StringFieldFormatter( 12, new FixedLengthManager(12), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Local transaction date and time")); FieldFormatters.Add(new StringFieldFormatter( 13, new FixedLengthManager(4), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Effective date")); FieldFormatters.Add(new StringFieldFormatter( 14, new FixedLengthManager(4), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Expiration date")); FieldFormatters.Add(new StringFieldFormatter( 15, new FixedLengthManager(6), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Settlement date")); FieldFormatters.Add(new StringFieldFormatter( 16, new FixedLengthManager(4), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Conversion date")); FieldFormatters.Add(new StringFieldFormatter( 17, new FixedLengthManager(4), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Capture date")); FieldFormatters.Add(new StringFieldFormatter( 18, new FixedLengthManager(4), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Merchant type")); FieldFormatters.Add(new StringFieldFormatter( 19, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Acquiring institution country code")); FieldFormatters.Add(new StringFieldFormatter( 20, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Primary account number country code")); FieldFormatters.Add(new StringFieldFormatter( 21, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Forwarding institution country code")); FieldFormatters.Add(new StringFieldFormatter( 22, new FixedLengthManager(12), StringEncoder.GetInstance(), "Point of service data code")); FieldFormatters.Add(new StringFieldFormatter( 23, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Card sequence number")); FieldFormatters.Add(new StringFieldFormatter( 24, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Function code")); FieldFormatters.Add(new StringFieldFormatter( 25, new FixedLengthManager(4), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Message reason code")); FieldFormatters.Add(new StringFieldFormatter( 26, new FixedLengthManager(4), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Card acceptor business code")); FieldFormatters.Add(new StringFieldFormatter( 27, new FixedLengthManager(1), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Approval code length")); FieldFormatters.Add(new StringFieldFormatter( 28, new FixedLengthManager(6), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Reconciliation date")); FieldFormatters.Add(new StringFieldFormatter( 29, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Reconciliation indicator")); FieldFormatters.Add(new StringFieldFormatter( 30, new FixedLengthManager(24), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Original amounts")); FieldFormatters.Add(new StringFieldFormatter( 31, new VariableLengthManager(0, 99, StringLengthEncoder.GetInstance(99)), StringEncoder.GetInstance(), "Acquirer reference data")); FieldFormatters.Add(new StringFieldFormatter( 32, new VariableLengthManager(0, 11, StringLengthEncoder.GetInstance(11)), StringEncoder.GetInstance(), NumericValidator.GetInstance(), "Acquirer institution identification code")); FieldFormatters.Add(new StringFieldFormatter( 33, new VariableLengthManager(0, 11, StringLengthEncoder.GetInstance(11)), StringEncoder.GetInstance(), NumericValidator.GetInstance(), "Forwarding institution identification code")); FieldFormatters.Add(new StringFieldFormatter( 34, new VariableLengthManager(0, 28, StringLengthEncoder.GetInstance(28)), StringEncoder.GetInstance(), "Extended primary account number")); FieldFormatters.Add(new StringFieldFormatter( 35, new VariableLengthManager(0, 37, StringLengthEncoder.GetInstance(37)), StringEncoder.GetInstance(), "Track 2 data")); FieldFormatters.Add(new StringFieldFormatter( 36, new VariableLengthManager(0, 104, StringLengthEncoder.GetInstance(104)), StringEncoder.GetInstance(), "Track 3 data")); FieldFormatters.Add(new StringFieldFormatter( 37, new FixedLengthManager(12), StringEncoder.GetInstance(), "Retrieval reference number")); FieldFormatters.Add(new StringFieldFormatter( 38, new FixedLengthManager(6), StringEncoder.GetInstance(), "Approval code")); FieldFormatters.Add(new StringFieldFormatter( 39, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Action code")); FieldFormatters.Add(new StringFieldFormatter( 40, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Service code")); FieldFormatters.Add(new StringFieldFormatter( 41, new FixedLengthManager(8), StringEncoder.GetInstance(), "Card acceptor terminal identification")); FieldFormatters.Add(new StringFieldFormatter( 42, new FixedLengthManager(15), StringEncoder.GetInstance(), "Card acceptor identification code")); FieldFormatters.Add(new StringFieldFormatter( 43, new VariableLengthManager(0, 99, StringLengthEncoder.GetInstance(99)), StringEncoder.GetInstance(), "Card acceptor name/location")); FieldFormatters.Add(new StringFieldFormatter( 44, new VariableLengthManager(0, 99, StringLengthEncoder.GetInstance(99)), StringEncoder.GetInstance(), "Additional response data")); FieldFormatters.Add(new StringFieldFormatter( 45, new VariableLengthManager(0, 76, StringLengthEncoder.GetInstance(76)), StringEncoder.GetInstance(), "Track 1 data")); FieldFormatters.Add(new StringFieldFormatter( 46, new VariableLengthManager(0, 204, StringLengthEncoder.GetInstance(204)), StringEncoder.GetInstance(), "Fees amounts")); FieldFormatters.Add(new StringFieldFormatter( 47, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Additional data - national")); FieldFormatters.Add(new StringFieldFormatter( 48, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Additional data - private")); FieldFormatters.Add(new StringFieldFormatter( 49, new FixedLengthManager(3), StringEncoder.GetInstance(), "Transaction currency code")); FieldFormatters.Add(new StringFieldFormatter( 50, new FixedLengthManager(3), StringEncoder.GetInstance(), "Reconciliation currency code")); FieldFormatters.Add(new StringFieldFormatter( 51, new FixedLengthManager(3), StringEncoder.GetInstance(), "Cardholder billing currency code")); FieldFormatters.Add(new BinaryFieldFormatter( 52, new FixedLengthManager(8), BinaryEncoder.GetInstance(), "Personal identification number (PIN) data")); FieldFormatters.Add(new BinaryFieldFormatter( 53, new VariableLengthManager(0, 48, StringLengthEncoder.GetInstance(48)), HexadecimalBinaryEncoder.GetInstance(), "Security related control information")); FieldFormatters.Add(new StringFieldFormatter( 54, new VariableLengthManager(0, 120, StringLengthEncoder.GetInstance(120)), StringEncoder.GetInstance(), "Amounts, additional")); FieldFormatters.Add(new BinaryFieldFormatter( 55, new VariableLengthManager(0, 255, StringLengthEncoder.GetInstance(255)), HexadecimalBinaryEncoder.GetInstance(), "IC card system related data")); FieldFormatters.Add(new StringFieldFormatter( 56, new VariableLengthManager(0, 35, StringLengthEncoder.GetInstance(35)), StringEncoder.GetInstance(), NumericValidator.GetInstance(), "Original data elements")); FieldFormatters.Add(new StringFieldFormatter( 57, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Authorization life cycle code")); FieldFormatters.Add(new StringFieldFormatter( 58, new VariableLengthManager(0, 11, StringLengthEncoder.GetInstance(11)), StringEncoder.GetInstance(), NumericValidator.GetInstance(), "Authorizing agent institution Id Code")); FieldFormatters.Add(new StringFieldFormatter( 59, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Transport data")); FieldFormatters.Add(new StringFieldFormatter( 60, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for national use")); FieldFormatters.Add(new StringFieldFormatter( 61, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for national use")); FieldFormatters.Add(new StringFieldFormatter( 62, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for private use")); FieldFormatters.Add(new StringFieldFormatter( 63, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for private use")); FieldFormatters.Add(new BinaryFieldFormatter( 64, new FixedLengthManager(8), BinaryEncoder.GetInstance(), "Message authentication code field")); FieldFormatters.Add(new BinaryFieldFormatter( 65, new FixedLengthManager(8), BinaryEncoder.GetInstance(), "Reserved for ISO use")); FieldFormatters.Add(new StringFieldFormatter( 66, new VariableLengthManager(0, 204, StringLengthEncoder.GetInstance(204)), StringEncoder.GetInstance(), "Amounts, original fees")); FieldFormatters.Add(new StringFieldFormatter( 67, new FixedLengthManager(2), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Extended payment data")); FieldFormatters.Add(new StringFieldFormatter( 68, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Receiving institution country code")); FieldFormatters.Add(new StringFieldFormatter( 69, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Settlement institution country code")); FieldFormatters.Add(new StringFieldFormatter( 70, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Authorizing agent institution country code")); FieldFormatters.Add(new StringFieldFormatter( 71, new FixedLengthManager(8), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Message number")); FieldFormatters.Add(new StringFieldFormatter( 72, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Data record")); FieldFormatters.Add(new StringFieldFormatter( 73, new FixedLengthManager(6), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, false), "Action date")); FieldFormatters.Add(new StringFieldFormatter( 74, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Credits, number")); FieldFormatters.Add(new StringFieldFormatter( 75, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Credits, reversal number")); FieldFormatters.Add(new StringFieldFormatter( 76, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Debits, number")); FieldFormatters.Add(new StringFieldFormatter( 77, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Debits, reversal number")); FieldFormatters.Add(new StringFieldFormatter( 78, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Transfer, number")); FieldFormatters.Add(new StringFieldFormatter( 79, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Transfer, reversal number")); FieldFormatters.Add(new StringFieldFormatter( 80, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Inquiries, number")); FieldFormatters.Add(new StringFieldFormatter( 81, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Authorizations, number")); FieldFormatters.Add(new StringFieldFormatter( 82, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Inquiries, reversal number")); FieldFormatters.Add(new StringFieldFormatter( 83, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Payments, number")); FieldFormatters.Add(new StringFieldFormatter( 84, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Payments, reversal number")); FieldFormatters.Add(new StringFieldFormatter( 85, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Fee collections, number")); FieldFormatters.Add(new StringFieldFormatter( 86, new FixedLengthManager(16), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Credits, amount")); FieldFormatters.Add(new StringFieldFormatter( 87, new FixedLengthManager(16), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Credits, reversal amount")); FieldFormatters.Add(new StringFieldFormatter( 88, new FixedLengthManager(16), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Debits, amount")); FieldFormatters.Add(new StringFieldFormatter( 89, new FixedLengthManager(16), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Debits, reversal amount")); FieldFormatters.Add(new StringFieldFormatter( 90, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Authorizations, reversal number")); FieldFormatters.Add(new StringFieldFormatter( 91, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Transaction destination institution country code")); FieldFormatters.Add(new StringFieldFormatter( 92, new FixedLengthManager(3), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Transaction originator institution country code")); FieldFormatters.Add(new StringFieldFormatter( 93, new VariableLengthManager(0, 11, StringLengthEncoder.GetInstance(11)), StringEncoder.GetInstance(), NumericValidator.GetInstance(), "Transaction destination institution Id Code")); FieldFormatters.Add(new StringFieldFormatter( 94, new VariableLengthManager(0, 11, StringLengthEncoder.GetInstance(11)), StringEncoder.GetInstance(), NumericValidator.GetInstance(), "Transaction originator institution Id Code")); FieldFormatters.Add(new StringFieldFormatter( 95, new VariableLengthManager(0, 99, StringLengthEncoder.GetInstance(99)), StringEncoder.GetInstance(), "Card issuer reference data")); FieldFormatters.Add(new BinaryFieldFormatter( 96, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(48)), HexadecimalBinaryEncoder.GetInstance(), "Key management data")); FieldFormatters.Add(new StringFieldFormatter( 97, new FixedLengthManager(17), StringEncoder.GetInstance(), "Net reconciliation amount")); FieldFormatters.Add(new StringFieldFormatter( 98, new FixedLengthManager(25), StringEncoder.GetInstance(), "Payee")); FieldFormatters.Add(new StringFieldFormatter( 99, new VariableLengthManager(0, 11, StringLengthEncoder.GetInstance(11)), StringEncoder.GetInstance(), "Settlement institution Id code")); FieldFormatters.Add(new StringFieldFormatter( 100, new VariableLengthManager(0, 11, StringLengthEncoder.GetInstance(11)), StringEncoder.GetInstance(), NumericValidator.GetInstance(), "Receiving institution Id code")); FieldFormatters.Add(new StringFieldFormatter( 101, new VariableLengthManager(0, 17, StringLengthEncoder.GetInstance(17)), StringEncoder.GetInstance(), "File name")); FieldFormatters.Add(new StringFieldFormatter( 102, new VariableLengthManager(0, 28, StringLengthEncoder.GetInstance(28)), StringEncoder.GetInstance(), "Account identification 1")); FieldFormatters.Add(new StringFieldFormatter( 103, new VariableLengthManager(0, 28, StringLengthEncoder.GetInstance(28)), StringEncoder.GetInstance(), "Account identification 2")); FieldFormatters.Add(new StringFieldFormatter( 104, new VariableLengthManager(0, 100, StringLengthEncoder.GetInstance(100)), StringEncoder.GetInstance(), "Transaction description")); FieldFormatters.Add(new StringFieldFormatter( 105, new FixedLengthManager(16), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Credits, chargeback amount")); FieldFormatters.Add(new StringFieldFormatter( 106, new FixedLengthManager(16), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Debits, chargeback amount")); FieldFormatters.Add(new StringFieldFormatter( 107, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Credits, chargeback number")); FieldFormatters.Add(new StringFieldFormatter( 108, new FixedLengthManager(10), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), "Debits, chargeback number")); FieldFormatters.Add(new StringFieldFormatter( 109, new VariableLengthManager(0, 84, StringLengthEncoder.GetInstance(84)), StringEncoder.GetInstance(), "Credits, fee amounts")); FieldFormatters.Add(new StringFieldFormatter( 110, new VariableLengthManager(0, 84, StringLengthEncoder.GetInstance(84)), StringEncoder.GetInstance(), "Debits, fee amounts")); FieldFormatters.Add(new StringFieldFormatter( 111, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for ISO use")); FieldFormatters.Add(new StringFieldFormatter( 112, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for ISO use")); FieldFormatters.Add(new StringFieldFormatter( 113, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for ISO use")); FieldFormatters.Add(new StringFieldFormatter( 114, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for ISO use")); FieldFormatters.Add(new StringFieldFormatter( 115, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for ISO use")); FieldFormatters.Add(new StringFieldFormatter( 116, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for national use")); FieldFormatters.Add(new StringFieldFormatter( 117, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for national use")); FieldFormatters.Add(new StringFieldFormatter( 118, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for national use")); FieldFormatters.Add(new StringFieldFormatter( 119, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for national use")); FieldFormatters.Add(new StringFieldFormatter( 120, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for national use")); FieldFormatters.Add(new StringFieldFormatter( 121, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for national use")); FieldFormatters.Add(new StringFieldFormatter( 122, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for national use")); FieldFormatters.Add(new StringFieldFormatter( 123, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for private use")); FieldFormatters.Add(new StringFieldFormatter( 124, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for private use")); FieldFormatters.Add(new StringFieldFormatter( 125, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for private use")); FieldFormatters.Add(new StringFieldFormatter( 126, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for private use")); FieldFormatters.Add(new StringFieldFormatter( 127, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), "Reserved for private use")); FieldFormatters.Add(new BinaryFieldFormatter( 128, new FixedLengthManager(8), BinaryEncoder.GetInstance(), "Message authentication code")); }
public void GetInstance() { Assert.IsTrue(_encoder == HexadecimalBinaryEncoder.GetInstance()); }
public void GetBitMapFieldNumbers() { BasicMessageFormatter formatter = new BasicMessageFormatter(); Assert.IsNull(formatter.GetBitMapFieldNumbers()); // Add fixed field Formatters. for (int i = 0; i < _fixedMessageFormatter.Length; i++) { formatter.FieldFormatters.Add(_fixedMessageFormatter[i]); } Assert.IsNull(formatter.GetBitMapFieldNumbers()); formatter.FieldFormatters.Clear(); // Add mixed field Formatters. for (int i = 0; i < _fixedMessageFormatter.Length; i++) { formatter.FieldFormatters.Add(_mixedMessageFormatter[i]); } int[] fieldNumbers = formatter.GetBitMapFieldNumbers(); Assert.IsNotNull(fieldNumbers); Assert.IsTrue(fieldNumbers.Length == 1); Assert.IsTrue(fieldNumbers[0] == 4); formatter.FieldFormatters.Remove(4); Assert.IsNull(formatter.GetBitMapFieldNumbers()); formatter.FieldFormatters.Clear(); formatter.FieldFormatters.Add(new BitMapFieldFormatter( 1, 65, 128, HexadecimalBinaryEncoder.GetInstance())); formatter.FieldFormatters.Add(new BitMapFieldFormatter( 0, 1, 64, HexadecimalBinaryEncoder.GetInstance())); formatter.FieldFormatters.Add(new BitMapFieldFormatter( 65, 129, 192, HexadecimalBinaryEncoder.GetInstance())); fieldNumbers = formatter.GetBitMapFieldNumbers(); Assert.IsNotNull(fieldNumbers); Assert.IsTrue(fieldNumbers.Length == 3); Assert.IsTrue(fieldNumbers[0] == 0); Assert.IsTrue(fieldNumbers[1] == 1); Assert.IsTrue(fieldNumbers[2] == 65); formatter.FieldFormatters.Remove(65); fieldNumbers = formatter.GetBitMapFieldNumbers(); Assert.IsNotNull(fieldNumbers); Assert.IsTrue(fieldNumbers.Length == 2); Assert.IsTrue(fieldNumbers[0] == 0); Assert.IsTrue(fieldNumbers[1] == 1); formatter.FieldFormatters.Remove(0); fieldNumbers = formatter.GetBitMapFieldNumbers(); Assert.IsNotNull(fieldNumbers); Assert.IsTrue(fieldNumbers.Length == 1); Assert.IsTrue(fieldNumbers[0] == 1); formatter.FieldFormatters.Add(new BitMapFieldFormatter( 65, 129, 192, HexadecimalBinaryEncoder.GetInstance())); fieldNumbers = formatter.GetBitMapFieldNumbers(); Assert.IsNotNull(fieldNumbers); Assert.IsTrue(fieldNumbers.Length == 2); Assert.IsTrue(fieldNumbers[0] == 1); Assert.IsTrue(fieldNumbers[1] == 65); formatter.FieldFormatters.Add(new BitMapFieldFormatter( 0, 1, 64, HexadecimalBinaryEncoder.GetInstance())); fieldNumbers = formatter.GetBitMapFieldNumbers(); Assert.IsNotNull(fieldNumbers); Assert.IsTrue(fieldNumbers.Length == 3); Assert.IsTrue(fieldNumbers[0] == 0); Assert.IsTrue(fieldNumbers[1] == 1); Assert.IsTrue(fieldNumbers[2] == 65); }