< Summary

Information
Class: ValidateLib.Metadata.Validators.VirtualColumnsValidator
Assembly: validatelib.dll
File(s): C:\skola_karlovka\RP\code\csv-validator\CSV_Validator\ValidateLib\Metadata\Validators\VirtualColumnsValidator.cs
Line coverage
100%
Covered lines: 13
Uncovered lines: 0
Coverable lines: 13
Total lines: 34
Line coverage: 100%
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
Validate(...)132
CheckVirtualTablesComeAfterNonVirtual(...)180

File(s)

C:\skola_karlovka\RP\code\csv-validator\CSV_Validator\ValidateLib\Metadata\Validators\VirtualColumnsValidator.cs

#LineLine coverage
 1using ValidateLib.ErrorsAndWarnings.Errors;
 2using ValidateLib.ErrorsAndWarnings.Warnings;
 3using ValidateLib.Metadata.Descriptors;
 4
 5namespace ValidateLib.Metadata.Validators
 6{
 7    public class VirtualColumnsValidator : IMValidator<SchemaDescriptor>
 8    {
 9        public List<Warning> Validate(SchemaDescriptor schemaDescriptor)
 10        {
 111            if (schemaDescriptor.columns?._value?.Count > 0)
 12            {
 113                CheckVirtualTablesComeAfterNonVirtual(schemaDescriptor.columns._value);
 14            }
 115            return new List<Warning>();
 16        }
 17        static void CheckVirtualTablesComeAfterNonVirtual(List<ColumnDescriptor> columns)
 18        {
 119            bool wasVirtualColumn = false;
 120            int index = 1;
 121            int indexOfFirstVirtual = -1;
 122            foreach (var column in columns)
 23            {
 124                if (wasVirtualColumn && !column._virtual!._value) ErrorFactory.ThrowVirtualColumnPrecedesNonVirtualError
 125                if (column._virtual!._value)
 26                {
 127                    wasVirtualColumn = true;
 128                    indexOfFirstVirtual = index;
 29                }
 130                index++;
 31            }
 132        }
 33    }
 34}