public void TryParse_NonSupportedType_ExceptionIsThrown()
        {
            var bytes    = new byte[] { 100, 0, 0, 0 };
            var property = typeof(MockRecord).GetProperty(nameof(MockRecord.Object));

            var binaryFieldParser = new BinaryFieldParser();

            binaryFieldParser.TryParse(property, bytes, out var parsedFieldValue, out var failureMessage);
        }
        public void TryParse_ParseFieldAttributeThrowsException_ExceptionIsPropogated()
        {
            var bytes    = new byte[] { 100 };
            var property = typeof(MockRecord).GetProperty(nameof(MockRecord.FieldWithFailingParseFieldAttribute));

            var binaryFieldParser = new BinaryFieldParser();

            binaryFieldParser.TryParse(property, bytes, out var parsedFieldValue, out var failureMessage);
        }
        public void TryParse_InvalidByte_FailureIsReturned()
        {
            var bytes    = new byte[] { };
            var property = typeof(MockRecord).GetProperty(nameof(MockRecord.Byte));

            var binaryFieldParser = new BinaryFieldParser();

            var couldParse = binaryFieldParser.TryParse(property, bytes, out var parsedFieldValue, out var failureMessage);

            Assert.IsFalse(couldParse);
            Assert.IsNotNull(failureMessage);
        }
        public void TryParse_Byte_ByteIsReturned()
        {
            var bytes    = new byte[] { 100 };
            var property = typeof(MockRecord).GetProperty(nameof(MockRecord.Byte));

            var binaryFieldParser = new BinaryFieldParser();

            var couldParse = binaryFieldParser.TryParse(property, bytes, out var parsedFieldValue, out var failureMessage);

            Assert.IsTrue(couldParse);
            Assert.AreEqual(bytes[0], parsedFieldValue);
            Assert.IsNull(failureMessage);
        }
        public void TryParse_NullableIntWithNullValue_NullIsReturned()
        {
            var bytes    = new byte[] { 0, 0, 0, 0 };
            var property = typeof(MockRecord).GetProperty(nameof(MockRecord.NullableInt));

            var binaryFieldParser = new BinaryFieldParser();

            var couldParse = binaryFieldParser.TryParse(property, bytes, out var parsedFieldValue, out var failureMessage);

            Assert.IsFalse(couldParse);
            Assert.IsNull(parsedFieldValue);
            Assert.IsNull(failureMessage);
        }
        public void TryParse_DateTime_DateTimeIsReturned()
        {
            var bytes    = new byte[] { 0, 64, 228, 71, 2, 34, 193, 8 };
            var property = typeof(MockRecord).GetProperty(nameof(MockRecord.DateTime));

            var binaryFieldParser = new BinaryFieldParser();

            var couldParse = binaryFieldParser.TryParse(property, bytes, out var parsedFieldValue, out var failureMessage);

            Assert.IsTrue(couldParse);
            Assert.AreEqual(DateTime.Parse("2000-01-01"), parsedFieldValue);
            Assert.IsNull(failureMessage);
        }
        public void TryParse_String_StringIsReturned()
        {
            var bytes    = new byte[] { 116, 101, 120, 116 };
            var property = typeof(MockRecord).GetProperty(nameof(MockRecord.String));

            var binaryFieldParser = new BinaryFieldParser();

            var couldParse = binaryFieldParser.TryParse(property, bytes, out var parsedFieldValue, out var failureMessage);

            Assert.IsTrue(couldParse);
            Assert.AreEqual("text", parsedFieldValue);
            Assert.IsNull(failureMessage);
        }
        public void TryParse_Float_FloatIsReturned()
        {
            var bytes    = new byte[] { 0, 0, 40, 65 };
            var property = typeof(MockRecord).GetProperty(nameof(MockRecord.Float));

            var binaryFieldParser = new BinaryFieldParser();

            var couldParse = binaryFieldParser.TryParse(property, bytes, out var parsedFieldValue, out var failureMessage);

            Assert.IsTrue(couldParse);
            Assert.AreEqual(10.5f, parsedFieldValue);
            Assert.IsNull(failureMessage);
        }
        public void TryParse_Decimal_DecimalIsReturned()
        {
            var bytes    = new byte[] { 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 };
            var property = typeof(MockRecord).GetProperty(nameof(MockRecord.Decimal));

            var binaryFieldParser = new BinaryFieldParser();

            var couldParse = binaryFieldParser.TryParse(property, bytes, out var parsedFieldValue, out var failureMessage);

            Assert.IsTrue(couldParse);
            Assert.AreEqual(2.00m, parsedFieldValue);
            Assert.IsNull(failureMessage);
        }
Esempio n. 10
0
        public void TryParse_Chars_CharsAreReturned()
        {
            var bytes = new byte[2] {
                100, 101
            };
            var property = typeof(MockRecord).GetProperty(nameof(MockRecord.Chars));

            var binaryFieldParser = new BinaryFieldParser();

            var couldParse = binaryFieldParser.TryParse(property, bytes, out var parsedFieldValue, out var failureMessage);

            Assert.IsTrue(couldParse);
            Assert.AreEqual((char)bytes[0], ((char[])parsedFieldValue)[0]);
            Assert.AreEqual((char)bytes[1], ((char[])parsedFieldValue)[1]);
            Assert.IsNull(failureMessage);
        }