예제 #1
0
        public void Check_given_invalid_cpr_returns_null(string cpr)
        {
            //Arrange
            var checker = new CPRParser(
                new DynamicsCPRTrimmer(),
                new DynamicsCPRValidator(new SerialNumberParser()),
                new SerialNumberParser());

            //Act
            var result = checker.Parse(cpr);

            //Assert
            Assert.Null(result);
        }
예제 #2
0
        public void Check_given_valid_cpr_with_symbols_returns_cpr_without_s(string untrimmedCPR, string trimmedCPR)
        {
            //Arrange
            var checker = new CPRParser(
                new DynamicsCPRTrimmer(),
                new DynamicsCPRValidator(new SerialNumberParser()),
                new SerialNumberParser());

            //Act
            var result = checker.Parse(untrimmedCPR);

            //Assert
            Assert.Equal(trimmedCPR, result);
        }
예제 #3
0
        public void Check_given_null_returns_null()
        {
            //Arrange
            var trimmer      = new Mock <ITrimmer>();
            var validator    = new Mock <IValidator>();
            var serialParser = new Mock <ISerialNumberParser>();
            var checker      = new CPRParser(
                trimmer.Object, validator.Object, serialParser.Object);

            //Act
            var result = checker.Parse(null);

            //Assert
            Assert.Null(result);
        }
예제 #4
0
        public void Check_given_valid_cpr_returns_cpr()
        {
            //Arrange
            var cpr     = "2507933001";
            var checker = new CPRParser(
                new DynamicsCPRTrimmer(),
                new DynamicsCPRValidator(new SerialNumberParser()),
                new SerialNumberParser());

            //Act
            var result = checker.Parse(cpr);

            //Assert
            Assert.Equal(cpr, result);
        }
예제 #5
0
        public void GetBirthDate_given_invalid_CPR_throws_new_ArgumentException(string cpr)
        {
            //Arrange
            var trimmer      = new Mock <ITrimmer>();
            var validator    = new Mock <IValidator>();
            var serialParser = new Mock <ISerialNumberParser>();

            serialParser.Setup(s => s.Parse(93, 3)).Returns(1993);
            var checker = new CPRParser(
                trimmer.Object, validator.Object, serialParser.Object);

            //Act
            //Assert
            Assert.Throws <ArgumentException>(() => checker.GetBirthDate(cpr));
        }
예제 #6
0
        public void GetGender_given_null_throws_new_ArgumentNullException()
        {
            //Arrange
            string cpr     = null;
            var    trimmer = new Mock <ITrimmer>();

            trimmer.Setup(t => t.Trim(cpr)).Returns(cpr);
            var validator = new Mock <IValidator>();

            validator.Setup(v => v.IsValid(cpr)).Returns(true);
            var serialParser = new Mock <ISerialNumberParser>();
            var checker      = new CPRParser(
                trimmer.Object, validator.Object, serialParser.Object);

            //Act
            //Assert
            Assert.Throws <ArgumentNullException>(() => checker.GetGender(cpr));
        }
예제 #7
0
        public void CheckTest()
        {
            //Arrange
            var cpr     = "25079330011";
            var trimmer = new Mock <ITrimmer>();

            trimmer.Setup(t => t.Trim(It.IsAny <string>())).Returns(cpr);
            var validator = new Mock <IValidator>();

            validator.Setup(v => v.IsValid(It.IsAny <string>())).Returns(false);
            var serialParser = new Mock <ISerialNumberParser>();
            var checker      = new CPRParser(
                trimmer.Object, validator.Object, serialParser.Object);

            //Act
            var result = checker.Parse(cpr);

            //Assert
            Assert.Null(result);
        }
예제 #8
0
        public void GetGender_given_valid_CPR_returns_correct_gender_code(string cpr, int gender)
        {
            //Arrange
            var trimmer = new Mock <ITrimmer>();

            trimmer.Setup(t => t.Trim(cpr)).Returns(cpr);
            var validator = new Mock <IValidator>();

            validator.Setup(v => v.IsValid(cpr)).Returns(true);
            var serialParser = new Mock <ISerialNumberParser>();

            serialParser.Setup(s => s.Parse(It.IsAny <int>(), It.IsAny <int>())).Returns(1993);
            var checker = new CPRParser(
                trimmer.Object, validator.Object, serialParser.Object);

            //Act
            var result = checker.GetGender(cpr);

            //Assert
            Assert.Equal(gender, result);
        }
예제 #9
0
        public void GetBirthDate_given_2507933001_returns_brithdate_25_07_1993()
        {
            //Arrange
            var cpr     = "2507933001";
            var trimmer = new Mock <ITrimmer>();

            trimmer.Setup(t => t.Trim(cpr)).Returns(cpr);
            var validator = new Mock <IValidator>();

            validator.Setup(v => v.IsValid(cpr)).Returns(true);
            var serialParser = new Mock <ISerialNumberParser>();

            serialParser.Setup(s => s.Parse(93, 3)).Returns(1993);
            var checker = new CPRParser(
                trimmer.Object, validator.Object, serialParser.Object);

            //Act
            var result = checker.GetBirthDate(cpr);

            //Assert
            var expected = new DateTime(1993, 07, 25);

            Assert.Equal(expected, result);
        }