public void IsValid_ShouldReturnFalseForInvalidMonth(RequiredMode separatorMode, bool expected)
        {
            var checksumValidator = Substitute.For<IValidator>();

            Assert.That(GetValidator(separatorMode, checksumValidator).IsValid("301974498S"), Is.EqualTo(expected));
            Assert.That(GetValidator(separatorMode, checksumValidator).IsValid("301974-498S"), Is.EqualTo(expected));

            checksumValidator.DidNotReceive().IsValid(Arg.Any<object>());
        }
 public static string Expression(RequiredMode separatorMode)
 {
     switch (separatorMode)
     {
         case RequiredMode.None:
             return NoSeparatorExpression;
         case RequiredMode.Required:
             return RequiredSeparatorExpression;
         default:
             return OptionalSeparatorExpression;
     }
 }
        public static string Expression(RequiredMode separatorMode)
        {
            switch (separatorMode)
            {
            case RequiredMode.None:
                return(NoDashExpression);

            case RequiredMode.Required:
                return(RequiredDashExpression);

            default:
                return(OptionalDashExpression);
            }
        }
 public FinnishSsnAttribute(RequiredMode separatorMode, IValidator checksumValidator)
     : base(Expression(separatorMode))
 {
     this.checksumValidator = checksumValidator;
 }
 public FinnishSsnAttribute(RequiredMode separatorMode)
     : this(separatorMode, new FinnishSsnChecksumValidator())
 {
 }
 public SwedishSsnAttribute(RequiredMode separatorMode, IValidator checksumValidator)
     : base(Expression(separatorMode))
 {
     this.checksumValidator = checksumValidator;
 }
 public SwedishSsnAttribute(RequiredMode separatorMode)
     : this(separatorMode, new SwedishSsnChecksumValidator())
 {
 }
 public void IsValid_ShouldReturnFalseForTooFewCharacters(RequiredMode separatorMode, bool expected)
 {
     Assert.That(GetValidator(separatorMode).IsValid("300974498"), Is.EqualTo(expected));
     Assert.That(GetValidator(separatorMode).IsValid("300974-498"), Is.EqualTo(expected));
 }
 public void IsValid_ShouldReturnFalseForMultipleDashes(RequiredMode separatorMode, bool expected)
 {
     Assert.That(GetValidator(separatorMode).IsValid("300974---498S"), Is.EqualTo(expected));
 }
 public void IsValid_ShouldReturnFalseForAlphaNumericalValue(RequiredMode separatorMode, bool expected)
 {
     Assert.That(GetValidator(separatorMode).IsValid("abcdefghijklm"), Is.EqualTo(expected));
     Assert.That(GetValidator(separatorMode).IsValid("abcdefghi-jklm"), Is.EqualTo(expected));
 }
 public void IsValid_ShouldReturnFalseForInvalidChecksum(RequiredMode separatorMode, bool expected)
 {
     Assert.That(GetValidator(separatorMode).IsValid("320974498S"), Is.EqualTo(expected));
     Assert.That(GetValidator(separatorMode).IsValid("320974-498S"), Is.EqualTo(expected));
 }
 public void IsValid_ShouldHandleValidNonDashedSsn(RequiredMode separatorMode, bool expected)
 {
     Assert.That(GetValidator(separatorMode).IsValid("300974498S"), Is.EqualTo(expected));
 }
 private static IValidator GetValidator(RequiredMode separatorMode, IValidator checksumValidator)
 {
     return new FinnishSsnAttribute(separatorMode, checksumValidator);
 }
 private static IValidator GetValidator(RequiredMode separatorMode)
 {
     return new FinnishSsnAttribute(separatorMode);
 }
        public void IsValid_ShouldValidateChecksumForValidDateSsnWithoutDash(RequiredMode separatorMode)
        {
            var checksumValidator = Substitute.For<IValidator>();

            GetValidator(separatorMode, checksumValidator).IsValid("300974498S");

            checksumValidator.Received().IsValid("300974498S");
        }
 public void IsValid_ShouldReturnTrueForNullValue(RequiredMode separatorMode, bool expected)
 {
     Assert.That(GetValidator(separatorMode).IsValid(null), Is.EqualTo(expected));
 }