< Summary

Information
Class: ValidateLib.TabularData.Validation.ValidationRules.NumberOfColumnsRowValidationRule
Assembly: validatelib.dll
File(s): C:\skola_karlovka\RP\code\csv-validator\CSV_Validator\ValidateLib\TabularData\Validation\ValidationRules\NumberOfColumnsRowValidationRule.cs
Line coverage
91%
Covered lines: 11
Uncovered lines: 1
Coverable lines: 12
Total lines: 33
Line coverage: 91.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

MethodBlocks covered Blocks not covered
ValidateRow(...)100
GetNumberOfNonVirtualColumns(...)161

File(s)

C:\skola_karlovka\RP\code\csv-validator\CSV_Validator\ValidateLib\TabularData\Validation\ValidationRules\NumberOfColumnsRowValidationRule.cs

#LineLine coverage
 1using ValidateLib.ErrorsAndWarnings.Errors;
 2using ValidateLib.ErrorsAndWarnings.Errors.ValidationErrors;
 3using ValidateLib.TabularData.AnnotatedTabularDataModel;
 4
 5namespace ValidateLib.TabularData.Validation.ValidationRules
 6{
 7    public class NumberOfColumnsRowValidationRule : IRowValidationRule
 8    {
 9        public List<Error> ValidateRow(Row annotatedRow)
 10        {
 111            List<Error> errors = new List<Error>();
 112            int annotatedTableColumnsCount = GetNumberOfNonVirtualColumns(annotatedRow.table);
 113            if (annotatedRow.cells.Count != annotatedTableColumnsCount && annotatedTableColumnsCount > 0)
 14            {
 115                errors.Add(ErrorFactory.GetColumnsCountMismatchValidationError(annotatedRow));
 16            }
 117            return errors;
 18        }
 19
 20        int GetNumberOfNonVirtualColumns(Table annotatedTable)
 21        {
 122            if (annotatedTable.columns is null)
 023                return 0;
 124            int count = 0;
 125            foreach (var column in annotatedTable.columns)
 26            {
 127                if (!column._virtual)
 128                    count++;
 29            }
 130            return count;
 31        }
 32    }
 33}