public void Initialize() { _pid = "9207113466"; _pidObject = new Pid() { YearSegment = 92, MontSegment = 07, DaySegment = 11, RegionSegment = 346, OrderSegment = 5, GenderSegment = 6, ChecksumSegment = 6 }; _pidValidationResult = new PidValidationResult() { Pid = _pidObject, ValidationStatus = PidValidationStatus.Valid }; _pidValidationService = new Mock <IPidValidationService>(); _pidValidationService.Setup(x => x.Validate(It.IsAny <string>())) .Returns(_pidValidationResult); _validatePidModel = new ValidatePidModel(_pidValidationService.Object) { Pid = _pid }; }
public PidValidationResult Validate(string pid) { if (string.IsNullOrEmpty(pid)) { throw new ArgumentNullException(nameof(pid)); } if (!long.TryParse(pid, out long pidNumber)) { throw new FormatException(nameof(pid)); } if (!ValidateRange(pid, pidNumber)) { throw new ArgumentOutOfRangeException(nameof(pid)); } var pidObject = _pidDataExtractor.Segregate(pid); if (pidObject == null) { throw new ArgumentNullException(nameof(pidObject)); } var result = new PidValidationResult() { Pid = pidObject }; var dateValidationStatus = ValidateDate(pidObject); if (dateValidationStatus != PidValidationStatus.Valid) { result.ValidationStatus = dateValidationStatus; return(result); } var checksumValidationStatus = ValidateChecksum(pid, pidObject.ChecksumSegment); if (checksumValidationStatus != PidValidationStatus.Valid) { result.ValidationStatus = checksumValidationStatus; return(result); } return(result); }