< Summary

Information
Class: ValidateLib.TabularData.Datatypes.Base64BinaryDT
Assembly: validatelib.dll
File(s): C:\skola_karlovka\RP\code\csv-validator\CSV_Validator\ValidateLib\TabularData\Datatypes\Base64BinaryDT.cs
Line coverage
46%
Covered lines: 14
Uncovered lines: 16
Coverable lines: 30
Total lines: 68
Line coverage: 46.6%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

File(s)

C:\skola_karlovka\RP\code\csv-validator\CSV_Validator\ValidateLib\TabularData\Datatypes\Base64BinaryDT.cs

#LineLine coverage
 1using System.Text.RegularExpressions;
 2using ValidateLib.ErrorsAndWarnings.Errors;
 3using ValidateLib.Metadata.Descriptors;
 4
 5namespace ValidateLib.TabularData.Datatypes
 6{
 7
 8    public class Base64BinaryDT : BaseDT, ILength
 9    {
 110        public byte[]? Value { get; set; }
 111        public Base64BinaryDT() { }
 112        public Base64BinaryDT(string stringValue) : base(stringValue)
 13        {
 114            CheckLexicalSpace(stringValue);
 15            try
 16            {
 117                Value = Convert.FromBase64String(stringValue);
 118            }
 119            catch (Exception)
 20            {
 121                ErrorFactory.ThrowDatatypeValidationError(stringValue);
 022            }
 23
 124        }
 25
 026        public Base64BinaryDT(string stringValue, FormatDescriptor format) : base(stringValue, format)
 27        {
 028            CheckLexicalSpace(stringValue);
 029            MatchRegex(format.pattern!, stringValue);
 30            try
 31            {
 032                Value = Convert.FromBase64String(stringValue);
 033            }
 034            catch (Exception)
 35            {
 036                ErrorFactory.ThrowDatatypeValidationError(stringValue);
 037            }
 38
 039        }
 40
 41        void CheckLexicalSpace(string stringValue)
 42        {
 143            string pattern = @"((([A-Za-z0-9+/] ?){4})*(([A-Za-z0-9+/] ?){3}[A-Za-z0-9+/]|([A-Za-z0-9+/] ?){2}[AEIMQUYcg
 144            if (!Regex.IsMatch(stringValue, pattern))
 045                ErrorFactory.ThrowDatatypeValidationError(stringValue);
 46
 147        }
 48
 49        public int Length()
 50        {
 151            if (Value == null) return 0;
 152            return Value!.Count();
 53        }
 54
 55        public override bool IsPatternValid(FormatDescriptor format)
 56        {
 57            try
 58            {
 059                Regex regex = new Regex(format.pattern!);
 060                return true;
 61            }
 062            catch (Exception)
 63            {
 064                return false;
 65            }
 066        }
 67    }
 68}