Пример #1
0
        public async Task CanFindFusieGemeenteByNiscode()
        {
            //Arrange
            var request = new AddressMatchRequest().WithGemeenteAndNisCodeAndStraatnaam();

            Latest.ArrangeLatestGemeenteWithRandomNisCodes(request.Gemeentenaam, 2);

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

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

            var firstMatch = response.AdresMatches.First();

            firstMatch.Should().HaveGemeente()
            .Which.Should().HaveGemeentenaam(request.Gemeentenaam);

            firstMatch.Should().NotHaveVolledigAdres();

            var secondMatch = response.AdresMatches.First();

            secondMatch.Should().HaveGemeente()
            .Which.Should().HaveGemeentenaam(request.Gemeentenaam);

            secondMatch.Should().NotHaveVolledigAdres();

            response.Should().ContainWarning("'Straatnaam' niet interpreteerbaar.");
            response.Should().NotContainWarning("Geen overeenkomst tussen 'Niscode' en 'Gemeentenaam'.");
        }
Пример #2
0
        public async Task CanFindGemeenteByNiscode()
        {
            string existingGemeentenaam = "Springfield";
            string requestedNiscode     = "12345";
            //Arrange
            //request
            AddressMatchRequest request = new AddressMatchRequest().WithNISCodeAndStraatnaam();

            request.Niscode = requestedNiscode;

            _latest.ArrangeLatestGemeente(requestedNiscode, existingGemeentenaam);

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

            //Assert
            response.Should().NotBeNull();
            response.Should().HaveMatches(1);
            AdresMatchItem firstMatch = response.AdresMatches.First();

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

            response.Should().ContainWarning("'Straatnaam' niet interpreteerbaar.");

            //response.Should().BeEquivalentTo(DoMatchTheOldWay(request));
        }
        public async Task <IActionResult> Get(
            [FromServices] IKadRrService kadRrService,
            [FromServices] ILatestQueries latestQueries,
            [FromServices] IOptions <ResponseOptions> responseOptions,
            [FromServices] AddressMatchContext context,
            [FromServices] BuildingContext buildingContext,
            [FromQuery] AddressMatchRequest addressMatchRequest,
            CancellationToken cancellationToken = default)
        {
            await new AddressMatchRequestValidator()
            .ValidateAndThrowAsync(addressMatchRequest, cancellationToken: cancellationToken);

            var warningLogger      = new ValidationMessageWarningLogger();
            var maxNumberOfResults = 10;
            var addressMatch       = new AddressMatchMatchingAlgorithm <AdresMatchScorableItem>(
                kadRrService,
                new ManualAddressMatchConfig(responseOptions.Value.SimilarityThreshold, responseOptions.Value.MaxStreetNamesThreshold),
                latestQueries,
                new GemeenteMapper(responseOptions.Value),
                new StreetNameMapper(responseOptions.Value, latestQueries),
                new AdresMapper(responseOptions.Value, latestQueries),
                maxNumberOfResults,
                warningLogger);

            var result = addressMatch.Process(new AddressMatchBuilder(Map(addressMatchRequest))).Take(maxNumberOfResults);

            return(Ok(new AddressMatchCollection
            {
                AdresMatches = result.ToList().Select(x => AdresMatchItem.Create(x, buildingContext, context, responseOptions.Value)).ToList(),
                Warnings = warningLogger.Warnings
            }));
        }
Пример #4
0
        public async Task CanFindStraatnaamByKadStraatCode()
        {
            var existingNisCode          = Generate.NisCode.Generate(Random);
            int existingStraatnaamId     = Generate.VbrObjectIdInt.Generate(Random);
            var existingGemeentenaam     = "Springfield";
            var existingStraatnaam       = "Evergreen Terrace";
            var requestededKadStraatCode = "6789";

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

            request.KadStraatcode = requestededKadStraatCode;

            Latest.ArrangeLatestGemeente(existingNisCode, existingGemeentenaam);
            KadRrService.ArrangeKadStraatnamen(existingNisCode, existingGemeentenaam, existingStraatnaamId, existingStraatnaam, requestededKadStraatCode);

            //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(existingStraatnaam)
            .And.HaveObjectId(existingStraatnaamId.ToString());

            firstMatch.Should().NotHaveVolledigAdres();
        }
Пример #5
0
        public async Task CanFindStraatnaamByRrStraatCode()
        {
            string existingNisCode         = Generate.Generate.NISCode.Generate(_random);
            int    existingStraatnaamId    = Generate.Generate.VbrObjectIDInt.Generate(_random);
            string existingGemeentenaam    = "Springfield";
            string existingStraatnaam      = "Evergreen Terrace";
            string requestededRrStraatCode = "987";

            //Arrange
            AddressMatchRequest request = new AddressMatchRequest().WithPostcodeAndRrStraatcode();

            request.RrStraatcode = requestededRrStraatCode;

            _latest.ArrangeLatestGemeente(existingNisCode, existingGemeentenaam);
            _kadRrService.ArrangeRrStraatnaam(request.Postcode, existingNisCode, existingGemeentenaam, existingStraatnaamId, existingStraatnaam, requestededRrStraatCode);
            _latest.ArrangeLatestPostInfo(existingNisCode, request.Postcode);

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

            //Assert
            response.Should().NotBeNull();
            response.Should().HaveMatches(1);
            AdresMatchItem 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();

            //response.Should().BeEquivalentTo(DoMatchTheOldWay(request));
        }
Пример #6
0
        public async Task CanFindGemeenteByDeelgemeente()
        {
            string existingNisCode       = Generate.Generate.NISCode.Generate(_random);
            string existingGemeentenaam  = "Springfield";
            string requestedGemeentenaam = "Deelgemeente";

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

            request.Gemeentenaam = requestedGemeentenaam;

            _latest.ArrangeLatestPostInfoForPartOfMunicipality(existingNisCode, requestedGemeentenaam);
            _latest.ArrangeLatestGemeente(existingNisCode, existingGemeentenaam);

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

            //Assert
            response.Should().NotBeNull();
            response.Should().HaveMatches(1);
            AdresMatchItem firstMatch = response.AdresMatches.First();

            firstMatch.Should().HaveGemeente()
            .Which.Should().HaveGemeentenaam(existingGemeentenaam)
            .And.HaveObjectId(existingNisCode);
            firstMatch.Should().NotHaveVolledigAdres();
            response.Should().ContainWarning("'Straatnaam' niet interpreteerbaar.");

            //response.Should().BeEquivalentTo(DoMatchTheOldWay(request));
        }
Пример #7
0
        public async Task CanFindGemeenteByPostcode()
        {
            var existingNisCode      = Generate.NisCode.Generate(Random);
            var existingGemeentenaam = "Springfield";
            var requestedPostcode    = "4900";

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

            request.Postcode = requestedPostcode;

            Latest.ArrangeLatestPostInfo(existingNisCode, requestedPostcode);
            Latest.ArrangeLatestGemeente(existingNisCode, existingGemeentenaam);

            //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().NotHaveVolledigAdres();

            response.Should().ContainWarning("'Straatnaam' niet interpreteerbaar.");
        }
        private Task <List <AdresListFilterStub> > MockedSanitizationTest(string straatnaam, string?huisNummer, string?index)
        {
            var promise = new TaskCompletionSource <List <AdresListFilterStub> >();

            void SanitizeAction(int i)
            {
                var request = new AddressMatchRequest
                {
                    Gemeentenaam = ExistingGemeentenaam,
                    Straatnaam   = straatnaam,
                    Huisnummer   = huisNummer,
                    Index        = index
                };

                try
                {
                    Log($"--------------------- TEST NR{i} ---------------------");
                    Log($"INPUT:\r\n-straatnaam : {straatnaam ?? "<null>"}\r\n-huisNummer : {huisNummer ?? "<null>"}\r\n-index : {index ?? "<null>"}");

                    _arrangeStraatnaam(straatnaam);

                    var filters = new List <AdresListFilterStub>();

                    Latest.Arrange(
                        Produce.EmptyList <AddressDetailItem>(),
                        (when, x) =>
                        when.InterceptingLatestAdresQuery(
                            (straatnaamid, huisnr, busnr) => filters.Add(new AdresListFilterStub
                    {
                        HuisnummerFilter = huisnr,
                        BusnummerFilter  = busnr
                    }), x));

                    var _ = (OkObjectResult)Send(request).GetAwaiter().GetResult();

                    if (filters.Any())
                    {
                        Log("RESULTS:");
                        filters.ForEach(result => Log($"\t***\r\n\tHuisNummer : {result.HuisnummerFilter ?? "<null>"}\r\n\tAppNummer : NOT IMPLEMENTED, WHAT TODO WITH APPNUMMER?\r\n\tBusNummer : {result.BusnummerFilter ?? "<null>"}"));
                    }
                    else
                    {
                        Log("NO RESULTS");
                    }

                    promise.SetResult(filters);
                }
                catch (Exception e)
                {
                    Log($"Exception\r\n{e}");
                    promise.SetException(e);
                }
            }

            _matchActions.Add(SanitizeAction);

            return(promise.Task);
        }
        public void PostcodeShouldBeNumeric()
        {
            //Arrange
            AddressMatchRequest request = new AddressMatchRequest().WithGemeenteAndStraatnaam();

            request.Postcode = "NAN";

            //Act & Assert
            _validator.ShouldHaveValidationErrorFor(r => r.Postcode, request);
        }
        public void BusnummerAndIndexAreMutuallyExclusive()
        {
            //Arrange
            AddressMatchRequest request = new AddressMatchRequest().WithGemeenteAndStraatnaam();

            request.Huisnummer = "742";
            request.Busnummer  = "C2";
            request.Index      = "verd2";

            //Act & Assert
            _validator.ShouldHaveValidationErrorFor(r => "Busnummer, Index", request);
        }
Пример #11
0
 public static AddressMatchRequest WithGemeenteAndNisCodeAndStraatnaam(this AddressMatchRequest request)
 => new AddressMatchRequest
 {
     Busnummer     = request.Busnummer,
     Gemeentenaam  = "Springfield",
     Huisnummer    = request.Huisnummer,
     Index         = request.Index,
     KadStraatcode = request.KadStraatcode,
     Niscode       = "12345",
     Postcode      = request.Postcode,
     RrStraatcode  = request.RrStraatcode,
     Straatnaam    = "Evergreen Terrace"
 };
Пример #12
0
 public static AddressMatchRequest WithPostcodeAndRrStraatcode(this AddressMatchRequest request)
 => new AddressMatchRequest
 {
     Busnummer     = request.Busnummer,
     Gemeentenaam  = request.Gemeentenaam,
     Huisnummer    = request.Huisnummer,
     Index         = request.Index,
     KadStraatcode = request.KadStraatcode,
     Niscode       = request.Niscode,
     Postcode      = "9770",
     RrStraatcode  = "987",
     Straatnaam    = request.Straatnaam
 };
Пример #13
0
 public static AddressMatchRequest WithGemeenteAndKadStraatcode(this AddressMatchRequest request)
 => new AddressMatchRequest
 {
     Busnummer     = request.Busnummer,
     Gemeentenaam  = "Springfield",
     Huisnummer    = request.Huisnummer,
     Index         = request.Index,
     KadStraatcode = "6789",
     Niscode       = request.Niscode,
     Postcode      = request.Postcode,
     RrStraatcode  = request.RrStraatcode,
     Straatnaam    = request.Straatnaam,
 };
Пример #14
0
 public static AddressMatchRequest WithPostcodeAndStraatnaam(this AddressMatchRequest request)
 => new AddressMatchRequest
 {
     Busnummer     = request.Busnummer,
     Gemeentenaam  = request.Gemeentenaam,
     Huisnummer    = request.Huisnummer,
     Index         = request.Index,
     KadStraatcode = request.KadStraatcode,
     Niscode       = request.Niscode,
     Postcode      = "49007",
     RrStraatcode  = request.RrStraatcode,
     Straatnaam    = "Evergreen Terrace"
 };
 private AddressMatchQueryComponents Map(AddressMatchRequest request) =>
 new AddressMatchQueryComponents
 {
     MunicipalityName  = request.Gemeentenaam,
     HouseNumber       = request.Huisnummer,
     BoxNumber         = request.Busnummer,
     Index             = request.Index,
     KadStreetNameCode = request.KadStraatcode,
     NisCode           = request.Niscode,
     PostalCode        = request.Postcode,
     RrStreetCode      = request.RrStraatcode,
     StreetName        = request.Straatnaam
 };
Пример #16
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.");
            }
        }
Пример #17
0
 public static AddressMatchRequest WithNISCodeAndStraatnaam(this AddressMatchRequest request)
 {
     return
         (new AddressMatchRequest
     {
         Busnummer = request.Busnummer,
         Gemeentenaam = request.Gemeentenaam,
         Huisnummer = request.Huisnummer,
         Index = request.Index,
         KadStraatcode = request.KadStraatcode,
         Niscode = "12345",
         Postcode = request.Postcode,
         RrStraatcode = request.RrStraatcode,
         Straatnaam = "Evergreen Terrace"
     });
 }
Пример #18
0
 protected Task <IActionResult> Send(AddressMatchRequest request)
 {
     return(_controller.Get(
                KadRrService.Object,
                Latest.Object,
                new OptionsWrapper <ResponseOptions>(new ResponseOptions
     {
         DetailUrl = "detail/{0}",
         GemeenteDetailUrl = "gemeentedetail/{0}",
         StraatnaamDetailUrl = "straatnaamdetail/{0}",
         PostInfoDetailUrl = "postinfodetail/{0}",
         MaxStreetNamesThreshold = 100,
         SimilarityThreshold = 75.0
     }),
                _addresMatchContext,
                _buildingContext,
                request));
 }
Пример #19
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}");
        }
Пример #20
0
        [InlineData("Sprungfelt", "Springfield", false, false)] // no match
        public async Task CanFindGemeenteByGemeentenaamMatch(string requestedGemeentenaam, string existingGemeentenaam, bool isMatch, bool isExactMatch)
        {
            var existingNisCode = Generate.NisCode.Generate(Random);

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

            request.Gemeentenaam = requestedGemeentenaam;

            Latest.ArrangeLatestGemeente(existingNisCode, existingGemeentenaam);

            //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().NotHaveVolledigAdres();

                response.Should().ContainWarning("'Straatnaam' niet interpreteerbaar.");
            }
            else
            {
                response.Should().HaveMatches(0);
            }

            if (!isExactMatch)
            {
                response.Should().ContainWarning("Onbekende 'Gemeentenaam'.");
            }
        }
Пример #21
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);
        }
Пример #22
0
        public async Task CanFindRrAdres()
        {
            //Arrange
            string existingNisCode      = Generate.Generate.NISCode.Generate(_random);
            string existingGemeentenaam = "Springfield";
            int    existingStraatnaamId = Generate.Generate.VbrObjectIDInt.Generate(_random);
            string existingStraatnaam   = "Evergreen Terrace";
            var    streetNameId         = Guid.NewGuid();

            AddressMatchRequest 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.Many(Generate.Generate.tblHuisNummer.Select(x => x.WithStraatNaamId(streetNameId))),
                                          (when, x) => when.AdresMappingExistsFor(x, request.Huisnummer, request.Index, request.RrStraatcode, request.Postcode));

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

            //Assert
            response.Should().NotBeNull();
            response.Should().HaveMatches(Math.Min(mappedAdressen.Count(), 10));
            AdresMatchItem 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().HaveVolledigAdres()
            .Which.Should().HaveGeografischeNaam($"{existingStraatnaam} {mappedAdressen.First().HouseNumber} bus {mappedAdressen.First().BoxNumber}, {mappedAdressen.First().PostalCode} {existingGemeentenaam}");
        }
Пример #23
0
        public async Task CanFindGemeenteByNiscode()
        {
            //Arrange
            var request = new AddressMatchRequest().WithGemeenteAndNisCodeAndStraatnaam();

            Latest.ArrangeLatestGemeente(request.Niscode, request.Gemeentenaam);

            //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(request.Gemeentenaam)
            .And.HaveObjectId(request.Niscode);

            firstMatch.Should().NotHaveVolledigAdres();

            response.Should().ContainWarning("'Straatnaam' niet interpreteerbaar.");
        }
Пример #24
0
        public async Task CanFindAdresMatch()
        {
            string existingNisCode      = Generate.Generate.NISCode.Generate(_random);
            int    existingStraatnaamId = Generate.Generate.VbrObjectIDInt.Generate(_random);
            string existingGemeentenaam = "Springfield";
            string postcode             = Generate.Generate.Postcode.Generate(_random);
            var    streetNameId         = Guid.NewGuid();

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

            request.Huisnummer = "742";

            var existingGemeente   = _latest.ArrangeLatestGemeente(existingNisCode, existingGemeentenaam).Single();
            var existingStraatnaam = _latest.ArrangeLatestStraatnaam(existingNisCode, existingGemeentenaam, existingStraatnaamId.ToString(), request.Straatnaam, streetNameId).Single();
            var existingAdres      = _latest.ArrangeLatestAdres(existingGemeente, existingStraatnaam, postcode, request.Huisnummer, null).Single();

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

            //Assert
            response.Should().NotBeNull();
            response.Should().HaveMatches(1);
            AdresMatchItem 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}, {postcode} {existingGemeentenaam}");

            //response.Should().BeEquivalentTo(DoMatchTheOldWay(request));
        }