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 Constructors() { BitMapFieldFormatter bitmapFormatter = new BitMapFieldFormatter( 0, 1, 64, BinaryEncoder.GetInstance()); Assert.IsTrue(bitmapFormatter.FieldNumber == 0); Assert.IsTrue(bitmapFormatter.LowerFieldNumber == 1); Assert.IsTrue(bitmapFormatter.UpperFieldNumber == 64); Assert.IsTrue(bitmapFormatter.Encoder == BinaryEncoder.GetInstance()); Assert.IsTrue(bitmapFormatter.Description == string.Empty); bitmapFormatter = new BitMapFieldFormatter( 1, 65, 128, BinaryEncoder.GetInstance(), "Second bitmap"); Assert.IsTrue(bitmapFormatter.FieldNumber == 1); Assert.IsTrue(bitmapFormatter.LowerFieldNumber == 65); Assert.IsTrue(bitmapFormatter.UpperFieldNumber == 128); Assert.IsTrue(bitmapFormatter.Encoder == BinaryEncoder.GetInstance()); Assert.IsTrue(bitmapFormatter.Description.Equals("Second bitmap")); try { bitmapFormatter = new BitMapFieldFormatter(0, 1, 64, null); Assert.Fail(); } catch (ArgumentNullException e) { Assert.IsTrue(e.ParamName.Equals("encoder")); } try { bitmapFormatter = new BitMapFieldFormatter(0, -1, 64, BinaryEncoder.GetInstance()); Assert.Fail(); } catch (ArgumentOutOfRangeException e) { Assert.IsTrue(e.ParamName.Equals("lowerFieldNumber")); } try { bitmapFormatter = new BitMapFieldFormatter(0, 65, 64, BinaryEncoder.GetInstance()); Assert.Fail(); } catch (ArgumentOutOfRangeException e) { Assert.IsTrue(e.ParamName.Equals("lowerFieldNumber")); } }
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")); }