Exemplo n.º 1
0
        public OperationResult Generate(string pattern)
        {
            OperationResult result;

            try
            {
                switch (_generationKind)
                {
                case GenerationKind.OrganizationNumber:
                    OrganizationNumber on = OrganizationNumber.OneRandom(pattern);
                    result = WriteNumber(on);
                    break;

                case GenerationKind.BirthNumber:
                    BirthNumber bn = BirthNumber.OneRandom(pattern);
                    result = WriteNumber(bn);
                    break;

                case GenerationKind.DNumber:
                    DNumber dn = DNumber.OneRandom(pattern);
                    result = WriteNumber(dn);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            catch (NinException ex)
            {
                result = new OperationResult {
                    Code = ex.Code, Message = ex.Message
                };
            }
            return(result);
        }
Exemplo n.º 2
0
        public OperationResult Generate(DateTime dateFrom, DateTime dateTo, GenderRequest gender)
        {
            OperationResult result;

            try
            {
                switch (_generationKind)
                {
                case GenerationKind.BirthNumber:
                    BirthNumber bn = BirthNumber.OneRandom(dateFrom, dateTo, gender);
                    result = WriteNumber(bn);
                    break;

                case GenerationKind.DNumber:
                    DNumber dn = DNumber.OneRandom(dateFrom, dateTo, gender);
                    result = WriteNumber(dn);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            catch (NinException ex)
            {
                result = new OperationResult {
                    Code = ex.Code, Message = ex.Message
                };
            }
            return(result);
        }
Exemplo n.º 3
0
        public OperationResult Generate(int count)
        {
            OperationResult result;

            try
            {
                switch (_generationKind)
                {
                case GenerationKind.OrganizationNumber:
                    if (count > 1)
                    {
                        IEnumerable <OrganizationNumber> ons = OrganizationNumber.ManyRandom(count);
                        result = WriteList(ons.Select(x => x.Number));
                    }
                    else
                    {
                        OrganizationNumber on = OrganizationNumber.OneRandom();
                        result = WriteNumber(on);
                    }
                    break;

                case GenerationKind.BirthNumber:
                    if (count > 1)
                    {
                        IEnumerable <BirthNumber> bns = BirthNumber.ManyRandom(count);
                        result = WriteList(bns.Select(x => x.Number));
                    }
                    else
                    {
                        BirthNumber bn = BirthNumber.OneRandom();
                        result = WriteNumber(bn);
                    }
                    break;

                case GenerationKind.DNumber:
                    if (count > 1)
                    {
                        IEnumerable <DNumber> dns = DNumber.ManyRandom(count);
                        result = WriteList(dns.Select(x => x.Number));
                    }
                    else
                    {
                        DNumber dn = DNumber.OneRandom();
                        result = WriteNumber(dn);
                    }
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            catch (NinException ex)
            {
                result = new OperationResult {
                    Code = ex.Code, Message = ex.Message
                };
            }
            return(result);
        }
Exemplo n.º 4
0
        public void OneRandom_FromDateLaterThanToDate_ThrowsException()
        {
            var          ex  = Assert.Throws(typeof(NinException), () => BirthNumber.OneRandom(DateBasedIdNumber.LastPossible, DateBasedIdNumber.FirstPossible));
            NinException nex = ex as NinException;

            Assert.IsNotNull(nex);
            Assert.AreEqual(Statuscode.BadDate, nex.Code);
        }
Exemplo n.º 5
0
        public void OneRandom_NoWildcardInPattern_ThrowsException()
        {
            var          ex  = Assert.Throws(typeof(NinException), () => BirthNumber.OneRandom("01234567890"));
            NinException nex = ex as NinException;

            Assert.IsNotNull(nex);
            Assert.AreEqual(Statuscode.BadPattern, nex.Code);
        }
Exemplo n.º 6
0
        public void OneRandom_InvalidCharacterInPattern_ThrowsException(string pattern)
        {
            var          ex  = Assert.Throws(typeof(NinException), () => BirthNumber.OneRandom(pattern));
            NinException nex = ex as NinException;

            Assert.IsNotNull(nex);
            Assert.AreEqual(Statuscode.BadPattern, nex.Code);
        }
Exemplo n.º 7
0
        public void OneRandom_EmptyPattern_ThrowsException()
        {
            var          ex  = Assert.Throws(typeof(NinException), () => BirthNumber.OneRandom(string.Empty));
            NinException nex = ex as NinException;

            Assert.IsNotNull(nex);
            Assert.AreEqual(Statuscode.PatternIsNullOrEmpty, nex.Code);
        }
Exemplo n.º 8
0
        public void OneRandom_TwoCallsReturnsDifferentNumbers()
        {
            BirthNumber birthNo1 = BirthNumber.OneRandom();
            BirthNumber birthNo2 = BirthNumber.OneRandom();

            Assert.IsNotNull(birthNo1);
            Assert.IsNotNull(birthNo2);
            Assert.AreNotEqual(birthNo1.Number, birthNo2.Number);
        }
Exemplo n.º 9
0
 public void OneRandom_SpecificGender_ReturnsOnlySpecifiedGender(GenderRequest gender, int expectedOddOrEven)
 {
     for (int index = 0; index < 10; ++index)
     {
         BirthNumber birthNo = BirthNumber.OneRandom(DateBasedIdNumber.FirstPossible, DateBasedIdNumber.LastPossible, gender);
         Assert.IsNotNull(birthNo);
         int oddOrEven = birthNo.Number[8] & 1;
         Assert.AreEqual(expectedOddOrEven, oddOrEven);
     }
 }
Exemplo n.º 10
0
        public void OneRandom_SpecificYear_ReturnsValidIndividualNumber(GenderRequest gender)
        {
            int firstYear = DateBasedIdNumber.FirstPossible.Year;
            int lastYear  = DateBasedIdNumber.LastPossible.Year;

            for (int year = firstYear; year < lastYear; ++year)
            {
                IEnumerable <int> legalIndividualNumbers = IndividualNumberProvider.GetLegalNumbers(year, gender);
                DateTime          dateFrom    = new DateTime(year, 1, 1);
                DateTime          dateTo      = new DateTime(year, 12, 31);
                BirthNumber       birthNumber = BirthNumber.OneRandom(dateFrom, dateTo, gender);
                if (null != birthNumber)
                {
                    int individualNumber = int.Parse(birthNumber.Number.Substring(6, 3));
                    Assert.IsTrue(legalIndividualNumbers.Contains(individualNumber));
                }
            }
        }
Exemplo n.º 11
0
        private void GenerateBirthNumber()
        {
            try
            {
                if (0 == comboBoxVaryUsing.SelectedIndex)
                {
                    string      pattern = textBoxPattern.Text.Trim();
                    BirthNumber birthNo = string.IsNullOrEmpty(pattern)
                        ? BirthNumber.OneRandom()
                        : BirthNumber.OneRandom(pattern);
                    ShowGenerated(birthNo);
                }
                else
                {
                    GenderRequest gender;
                    switch (comboBoxGender.SelectedIndex)
                    {
                    case 1:
                        gender = GenderRequest.Female;
                        break;

                    case 2:
                        gender = GenderRequest.Male;
                        break;

                    default:
                        gender = GenderRequest.Any;
                        break;
                    }
                    BirthNumber birthNo = BirthNumber.OneRandom(dateTimePickerFrom.Value, dateTimePickerTo.Value, gender);
                    ShowGenerated(birthNo);
                }
            }
            catch (NinException ex)
            {
                ShowResult("Feil", string.Format("Klarte ikke å generere fødselsnummer:\r\n{0}", ex.Message), true);
            }
        }
Exemplo n.º 12
0
 public BirthNumber NinEngine()
 {
     return(BirthNumber.OneRandom(DateTime.Now, DateTime.Now));
 }
Exemplo n.º 13
0
 public void OneRandom_GoodPattern_ReturnsValidNumber(string pattern)
 {
     Assert.DoesNotThrow(() => BirthNumber.OneRandom(pattern));
 }
Exemplo n.º 14
0
 public void OneRandom_ReturnsValidNumber()
 {
     Assert.DoesNotThrow(() => BirthNumber.OneRandom());
 }