< Summary

Information
Class: ValidateLib.TabularData.Datatypes.DateDatatypes.DateDT
Assembly: validatelib.dll
File(s): C:\skola_karlovka\RP\code\csv-validator\CSV_Validator\ValidateLib\TabularData\Datatypes\DateDatatypes\DateDT.cs
Line coverage
95%
Covered lines: 23
Uncovered lines: 1
Coverable lines: 24
Total lines: 46
Line coverage: 95.8%
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

MethodBlocks covered Blocks not covered
DateDT()20
DateDT(...)101
DateDT()10
CheckLexicalSpace(...)31
isPatternValid(...)80

File(s)

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

#LineLine coverage
 1using System.Text.RegularExpressions;
 2using ValidateLib.ErrorsAndWarnings.Errors;
 3using ValidateLib.Metadata.Descriptors;
 4
 5namespace ValidateLib.TabularData.Datatypes.DateDatatypes
 6{
 7
 8    public class DateDT : DateTimeDT
 9    {
 110        public override string DefaultFormatDateTime { get; } = "yyyy-MM-ddzzz";
 111        public static string dateRegex = @"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\+|-
 112        public DateDT() { }
 113        public DateDT(string stringValue, FormatDescriptor format) : base(stringValue, format)
 14        {
 115            if (format.pattern is not null)
 16            {
 117                if (!isPatternValid(format.pattern))
 118                    ErrorFactory.ThrowInvalidFormatError(format.pattern);
 19            }
 120            else CheckLexicalSpace(stringValue);
 121        }
 22
 23        public static void CheckLexicalSpace(string stringValue)
 24        {
 125            if (!Regex.IsMatch(stringValue, dateRegex))
 026                ErrorFactory.ThrowDatatypeValidationError();
 127        }
 28
 29        new protected bool isPatternValid(string pattern)
 30        {
 131            char[] forbiddenChars = new char[]
 132            {
 133                'h',
 134                'H',
 135                'm',
 136                's',
 137                'S'
 138            };
 139            foreach (var c in forbiddenChars)
 140                if (pattern.Contains(c))
 141                    return false;
 42
 143            return true;
 44        }
 45    }
 46}