public AdresMatchSanitizationTests(ITestOutputHelper testOutputHelper)
            : base(testOutputHelper, testOutputHelper.WriteLine)
        {
            string existingNisCode = Generate.NisCode.Generate(Random);

            Latest.ArrangeLatestGemeente(existingNisCode, ExistingGemeentenaam);

            _arrangeStraatnaam = straatnaam =>
            {
                var straatnaamId = Generate.Id.Generate(Random);
                Latest.ArrangeLatestStraatnaam(existingNisCode, ExistingGemeentenaam, straatnaamId.ToString(), straatnaam, Guid.NewGuid());
            };
        }
Пример #2
0
        [InlineData("Trammesantlei", "Evergreen Terrace", false)]                      // no match
        public async Task CanFindStraatnaamByStraatnaamMatch(string requestedStraatnaam, string existingStraatnaam, bool isMatch = true)
        {
            var existingNisCode      = Generate.NisCode.Generate(Random);
            var existingStraatnaamId = Generate.VbrObjectIdInt.Generate(Random);
            var existingGemeentenaam = "Springfield";

            //Arrange
            var request = new AddressMatchRequest().WithGemeenteAndStraatnaam();

            request.Straatnaam = requestedStraatnaam;

            Latest.ArrangeLatestGemeente(existingNisCode, existingGemeentenaam);
            Latest.ArrangeLatestStraatnaam(existingNisCode, existingGemeentenaam, existingStraatnaamId.ToString(), existingStraatnaam, Guid.NewGuid());

            //Act
            var response = (AddressMatchCollection)((OkObjectResult)await Send(request)).Value;

            //Assert
            response.Should().NotBeNull();

            if (isMatch)
            {
                response.Should().HaveMatches(1);

                var firstMatch = response.AdresMatches.First();

                firstMatch.Should().HaveGemeente()
                .Which.Should().HaveGemeentenaam(existingGemeentenaam)
                .And.HaveObjectId(existingNisCode);

                firstMatch.Should().HaveStraatnaam()
                .Which.Should().HaveStraatnaam(existingStraatnaam)
                .And.HaveObjectId(existingStraatnaamId.ToString());

                firstMatch.Should().NotHaveVolledigAdres();
            }
            else
            {
                response.Should().HaveMatches(1);


                var firstMatch = response.AdresMatches.First();
                firstMatch.Should().HaveGemeente()
                .Which.Should().HaveGemeentenaam(existingGemeentenaam)
                .And.HaveObjectId(existingNisCode);

                firstMatch.Should().HaveNoStraatnaam();

                response.Should().ContainWarning("'Straatnaam' niet interpreteerbaar.");
            }
        }
Пример #3
0
        public async Task CanFindRrAdres()
        {
            //Arrange
            var existingNisCode      = Generate.NisCode.Generate(Random);
            var existingGemeentenaam = "Springfield";
            var existingStraatnaamId = Generate.VbrObjectIdInt.Generate(Random);
            var existingStraatnaam   = "Evergreen Terrace";
            var streetNameId         = Guid.NewGuid();

            var request = new AddressMatchRequest().WithPostcodeAndRrStraatcode();

            request.Huisnummer = "15";

            var gemeente = Latest.ArrangeLatestGemeente(existingNisCode, existingGemeentenaam).First();
            var straat   = Latest.ArrangeLatestStraatnaam(existingNisCode, existingGemeentenaam, existingStraatnaamId.ToString(), existingStraatnaam, streetNameId).First();

            var mappedAdressen = KadRrService
                                 .Arrange(Produce.Exactly(6, Generate.TblHuisNummer.Select(x => x.WithStraatNaamId(streetNameId))),
                                          (when, x) => when.AdresMappingExistsFor(x, request.Huisnummer, request.Index, request.RrStraatcode, request.Postcode))
                                 .OrderBy(x => new VolledigAdres(existingStraatnaam, x.HouseNumber, x.BoxNumber, x.PostalCode, existingGemeentenaam, Taal.NL).GeografischeNaam.Spelling)
                                 .ToList();

            //Act
            var response = (AddressMatchCollection)((OkObjectResult)await Send(request)).Value;

            //Assert
            response.Should().NotBeNull();
            response.Should().HaveMatches(Math.Min(mappedAdressen.Count, 10));

            var firstMatch = response.AdresMatches.OrderBy(x => x.Score).ThenBy(x => x.VolledigAdres?.GeografischeNaam?.Spelling).First();

            firstMatch.Should().HaveGemeente()
            .Which.Should().HaveGemeentenaam(existingGemeentenaam)
            .And.HaveObjectId(existingNisCode);

            firstMatch.Should().HaveStraatnaam()
            .Which.Should().HaveStraatnaam(existingStraatnaam)
            .And.HaveObjectId(existingStraatnaamId.ToString());

            firstMatch.Should().HaveVolledigAdres()
            .Which.Should().HaveGeografischeNaam($"{existingStraatnaam} {mappedAdressen.First().HouseNumber} bus {mappedAdressen.First().BoxNumber}, {mappedAdressen.First().PostalCode} {existingGemeentenaam}");
        }
Пример #4
0
        public async Task AdresMatchWithBusnummerSkipsSanitization()
        {
            var existingNisCode      = Generate.NisCode.Generate(Random);
            var existingStraatnaamId = Generate.VbrObjectIdInt.Generate(Random);
            var existingGemeentenaam = "Springfield";
            var postcode             = Generate.Postcode.Generate(Random);

            //Arrange
            var request = new AddressMatchRequest().WithGemeenteAndStraatnaam();

            request.Postcode   = postcode;
            request.Huisnummer = "742";
            request.Busnummer  = "C2";

            var existingGemeente   = Latest.ArrangeLatestGemeente(existingNisCode, existingGemeentenaam).Single();
            var existingStraatnaam = Latest.ArrangeLatestStraatnaam(existingNisCode, existingGemeentenaam, existingStraatnaamId.ToString(), request.Straatnaam, Guid.NewGuid()).Single();

            Latest.ArrangeLatestAdres(existingGemeente, existingStraatnaam, postcode, request.Huisnummer, request.Busnummer);

            //Act
            var response = (AddressMatchCollection)((OkObjectResult)await Send(request)).Value;

            //Assert
            response.Should().NotBeNull();
            response.Should().HaveMatches(1);

            var firstMatch = response.AdresMatches.First();

            firstMatch.Should().HaveGemeente()
            .Which.Should().HaveGemeentenaam(existingGemeentenaam)
            .And.HaveObjectId(existingNisCode);

            firstMatch.Should().HaveStraatnaam()
            .Which.Should().HaveStraatnaam(request.Straatnaam)
            .And.HaveObjectId(existingStraatnaamId.ToString());

            firstMatch.Should().HaveVolledigAdres()
            .Which.Should().HaveGeografischeNaam($"{existingStraatnaam.NameDutch} {request.Huisnummer} bus {request.Busnummer}, {postcode} {existingGemeentenaam}");

            firstMatch.Should().HaveScore(100);
        }