public void SetUp() { _paddingWithTruncate = SpacePaddingLeft.GetInstance(true); Assert.IsNotNull(_paddingWithTruncate); _paddingWithoutTruncate = SpacePaddingLeft.GetInstance(false); Assert.IsNotNull(_paddingWithoutTruncate); }
public void GetInstance() { Assert.IsTrue(_paddingWithTruncate == SpacePaddingLeft.GetInstance(true)); Assert.IsTrue(_paddingWithoutTruncate == SpacePaddingLeft.GetInstance(false)); }
public void Format() { FormatterContext formatterContext = new FormatterContext( FormatterContext.DefaultBufferSize); StringField field = new StringField(1, "DATA"); StringFieldFormatter formatter; string formattedData; // Test fixed length formatting. formatter = new StringFieldFormatter(37, new FixedLengthManager(12), StringEncoder.GetInstance()); formatter.Format(field, ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals("DATA ")); // Test variable length formatting without padding. formatterContext.Clear(); formatter = new StringFieldFormatter(48, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance()); formatter.Format(field, ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals("004DATA")); formatterContext.Clear(); formatter.Format(new StringField(5, null), ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals("000")); // Test variable length formatting with padding. formatterContext.Clear(); formatter = new StringFieldFormatter(48, new VariableLengthManager(10, 10, StringLengthEncoder.GetInstance(10)), StringEncoder.GetInstance(), SpacePaddingLeft.GetInstance(false), string.Empty); formatter.Format(field, ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals("10 DATA")); // Test validator with fixed length formatting. formatterContext.Clear(); formatter = new StringFieldFormatter(37, new FixedLengthManager(12), StringEncoder.GetInstance(), NumericValidator.GetInstance(), string.Empty); field.FieldValue = "000000001500"; formatter.Format(field, ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals("000000001500")); // Try with an invalid value. formatterContext.Clear(); field.FieldValue = "D1500"; try { formatter.Format(field, ref formatterContext); Assert.Fail(); } catch (StringValidationException) { } // Test validator with fixed length formatting and numeric padding. formatterContext.Clear(); formatter = new StringFieldFormatter(37, new FixedLengthManager(12), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), NumericValidator.GetInstance()); field.FieldValue = "56600"; formatter.Format(field, ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals("000000056600")); // Try with an invalid value. formatterContext.Clear(); field.FieldValue = "D1500"; try { formatter.Format(field, ref formatterContext); Assert.Fail(); } catch (StringValidationException) { } }
public void Parse() { ParserContext parseContext = new ParserContext( ParserContext.DefaultBufferSize); StringField field; StringFieldFormatter formatter; // Setup data for three complete fields an one with partial data. parseContext.Write("DATA 20 DATA TO BE PARSED009SOME DATA00"); // Test fixed length parse. formatter = new StringFieldFormatter(37, new FixedLengthManager(12), StringEncoder.GetInstance()); field = ( StringField)formatter.Parse(ref parseContext); Assert.IsNotNull(field); parseContext.ResetDecodedLength(); Assert.IsTrue(field.FieldValue.Equals("DATA")); // Test variable length parse with padding. formatter = new StringFieldFormatter(48, new VariableLengthManager(1, 20, StringLengthEncoder.GetInstance(99)), StringEncoder.GetInstance(), SpacePaddingLeft.GetInstance(false), string.Empty); field = ( StringField)formatter.Parse(ref parseContext); Assert.IsNotNull(field); parseContext.ResetDecodedLength(); Assert.IsTrue(field.FieldValue.Equals("DATA TO BE PARSED")); // Test variable length parse without padding. formatter = new StringFieldFormatter(48, new VariableLengthManager(1, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance()); field = ( StringField)formatter.Parse(ref parseContext); Assert.IsNotNull(field); parseContext.ResetDecodedLength(); Assert.IsTrue(field.FieldValue.Equals("SOME DATA")); // Test partial variable length parse without padding. field = ( StringField)formatter.Parse(ref parseContext); Assert.IsNull(field); parseContext.Write("9MORE D"); field = ( StringField)formatter.Parse(ref parseContext); Assert.IsNull(field); parseContext.Write("ATA"); field = ( StringField)formatter.Parse(ref parseContext); Assert.IsNotNull(field); parseContext.ResetDecodedLength(); Assert.IsTrue(field.FieldValue.Equals("MORE DATA")); // Test partial fixed parse with padding. formatter = new StringFieldFormatter(37, new FixedLengthManager(12), StringEncoder.GetInstance()); field = ( StringField)formatter.Parse(ref parseContext); Assert.IsNull(field); parseContext.Write("ONE MORE"); field = ( StringField)formatter.Parse(ref parseContext); Assert.IsNull(field); parseContext.Write(" "); field = ( StringField)formatter.Parse(ref parseContext); Assert.IsNotNull(field); parseContext.ResetDecodedLength(); Assert.IsTrue(field.FieldValue.Equals("ONE MORE")); // Test variable length header with zero length. formatter = new StringFieldFormatter(48, new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance()); parseContext.Write("000"); field = ( StringField)formatter.Parse(ref parseContext); Assert.IsNotNull(field); parseContext.ResetDecodedLength(); Assert.IsNull(field.FieldValue); // Test fixed length parse with validation. formatter = new StringFieldFormatter(37, new FixedLengthManager(12), StringEncoder.GetInstance(), ZeroPaddingLeft.GetInstance(false, true), NumericValidator.GetInstance()); parseContext.Write("000000145000"); field = ( StringField)formatter.Parse(ref parseContext); Assert.IsNotNull(field); parseContext.ResetDecodedLength(); Assert.IsTrue(field.FieldValue.Equals("145000")); // Try with an invalid value. parseContext.Write("0000001450F0"); try { field = ( StringField)formatter.Parse(ref parseContext); Assert.Fail(); } catch (StringValidationException) { } // Test variable length parse with validation. parseContext.Clear(); parseContext.ResetDecodedLength(); formatter = new StringFieldFormatter(48, new VariableLengthManager(1, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance(), NumericValidator.GetInstance()); parseContext.Write("00532000"); field = ( StringField)formatter.Parse(ref parseContext); Assert.IsNotNull(field); parseContext.ResetDecodedLength(); Assert.IsTrue(field.FieldValue.Equals("32000")); // Try with an invalid value. parseContext.Write("005350F0"); try { field = ( StringField)formatter.Parse(ref parseContext); Assert.Fail(); } catch (StringValidationException) { } }
public void Format() { FormatterContext formatterContext = new FormatterContext( FormatterContext.DefaultBufferSize); StringMessageHeader header = new StringMessageHeader("DATA"); StringMessageHeaderFormatter formatter; string formattedData; // Test fixed length formatting. formatter = new StringMessageHeaderFormatter( new FixedLengthManager(12), StringEncoder.GetInstance()); formatter.Format(header, ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals("DATA ")); formatterContext.Clear(); formatter.Format(null, ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals(" ")); // Test variable length formatting without padding. formatterContext.Clear(); formatter = new StringMessageHeaderFormatter(new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance()); formatter.Format(header, ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals("004DATA")); formatterContext.Clear(); formatter.Format(null, ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals("000")); // Test variable length formatting with padding. formatterContext.Clear(); formatter = new StringMessageHeaderFormatter(new VariableLengthManager(10, 10, StringLengthEncoder.GetInstance(10)), StringEncoder.GetInstance(), SpacePaddingLeft.GetInstance(false)); formatter.Format(header, ref formatterContext); formattedData = formatterContext.GetDataAsString(); Assert.IsTrue(formattedData.Equals("10 DATA")); }
public void Parse() { ParserContext parseContext = new ParserContext( ParserContext.DefaultBufferSize); StringMessageHeader header; StringMessageHeaderFormatter formatter; // Setup data for three complete fields an one with partial data. parseContext.Write("DATA 20 DATA TO BE PARSED009SOME DATA00"); // Test fixed length parse. formatter = new StringMessageHeaderFormatter(new FixedLengthManager(12), StringEncoder.GetInstance()); header = ( StringMessageHeader)formatter.Parse(ref parseContext); Assert.IsNotNull(header); parseContext.ResetDecodedLength(); Assert.IsTrue(header.Value.Equals("DATA")); // Test variable length parse with padding. formatter = new StringMessageHeaderFormatter(new VariableLengthManager(1, 20, StringLengthEncoder.GetInstance(99)), StringEncoder.GetInstance(), SpacePaddingLeft.GetInstance(false)); header = ( StringMessageHeader)formatter.Parse(ref parseContext); Assert.IsNotNull(header); parseContext.ResetDecodedLength(); Assert.IsTrue(header.Value.Equals("DATA TO BE PARSED")); // Test variable length parse without padding. formatter = new StringMessageHeaderFormatter(new VariableLengthManager(1, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance()); header = ( StringMessageHeader)formatter.Parse(ref parseContext); Assert.IsNotNull(header); parseContext.ResetDecodedLength(); Assert.IsTrue(header.Value.Equals("SOME DATA")); // Test partial variable length parse without padding. header = ( StringMessageHeader)formatter.Parse(ref parseContext); Assert.IsNull(header); parseContext.Write("9MORE D"); header = ( StringMessageHeader)formatter.Parse(ref parseContext); Assert.IsNull(header); parseContext.Write("ATA"); header = ( StringMessageHeader)formatter.Parse(ref parseContext); Assert.IsNotNull(header); parseContext.ResetDecodedLength(); Assert.IsTrue(header.Value.Equals("MORE DATA")); // Test partial fixed parse with padding. formatter = new StringMessageHeaderFormatter(new FixedLengthManager(12), StringEncoder.GetInstance()); header = ( StringMessageHeader)formatter.Parse(ref parseContext); Assert.IsNull(header); parseContext.Write("ONE MORE"); header = ( StringMessageHeader)formatter.Parse(ref parseContext); Assert.IsNull(header); parseContext.Write(" "); header = ( StringMessageHeader)formatter.Parse(ref parseContext); Assert.IsNotNull(header); parseContext.ResetDecodedLength(); Assert.IsTrue(header.Value.Equals("ONE MORE")); // Test variable length header with zero length. formatter = new StringMessageHeaderFormatter(new VariableLengthManager(0, 999, StringLengthEncoder.GetInstance(999)), StringEncoder.GetInstance()); parseContext.Write("000"); header = ( StringMessageHeader)formatter.Parse(ref parseContext); Assert.IsNotNull(header); parseContext.ResetDecodedLength(); Assert.IsNull(header.Value); }