File tree Expand file tree Collapse file tree 2 files changed +34
-1
lines changed
main/java/net/contargo/iris/address/service
test/java/net/contargo/iris/address/service Expand file tree Collapse file tree 2 files changed +34
-1
lines changed Original file line number Diff line number Diff line change 1717import java .util .Collections ;
1818import java .util .List ;
1919import java .util .Map ;
20+ import java .util .regex .Pattern ;
2021
2122import static net .contargo .iris .address .nominatim .service .AddressDetailKey .CITY ;
2223import static net .contargo .iris .address .nominatim .service .AddressDetailKey .COUNTRY ;
3637public class AddressServiceWrapper {
3738
3839 private static final Logger LOG = LoggerFactory .getLogger (AddressServiceWrapper .class );
40+ private static final Pattern HASHKEY_MATCHER = Pattern .compile ("^[A-Z0-9]{5}$" );
3941
4042 private final AddressService addressService ;
4143 private final StaticAddressService staticAddressService ;
@@ -193,6 +195,16 @@ private static List<AddressList> getSimpleAddressList(List<Address> addresses) {
193195
194196 public List <Address > getAddressesByQuery (String query ) {
195197
196- return addressService .getAddressesByQuery (query );
198+ List <Address > addresses = new ArrayList <>();
199+
200+ if (HASHKEY_MATCHER .matcher (query ).matches ()) {
201+ addresses .add (getByHashKey (query ));
202+ }
203+
204+ if (addresses .isEmpty ()) {
205+ addresses .addAll (addressService .getAddressesByQuery (query ));
206+ }
207+
208+ return addresses ;
197209 }
198210}
Original file line number Diff line number Diff line change @@ -427,5 +427,26 @@ public void getAddressesByQuery() {
427427
428428 assertThat (addresses , hasSize (1 ));
429429 assertThat (addresses .get (0 ), is (address ));
430+
431+ verifyZeroInteractions (staticAddressServiceMock );
432+ }
433+
434+
435+ @ Test
436+ public void getAddressesByQueryWithHashkey () {
437+
438+ StaticAddress address = new StaticAddress ();
439+ address .setCity ("Karlsruhe" );
440+ address .setPostalcode ("76135" );
441+
442+ when (staticAddressServiceMock .findByHashKey ("D5EHW" )).thenReturn (address );
443+
444+ List <Address > addresses = sut .getAddressesByQuery ("D5EHW" );
445+
446+ assertThat (addresses , hasSize (1 ));
447+ assertThat (addresses .get (0 ).getCity (), is ("Karlsruhe" ));
448+ assertThat (addresses .get (0 ).getPostcode (), is ("76135" ));
449+
450+ verifyZeroInteractions (addressServiceMock );
430451 }
431452}
You can’t perform that action at this time.
0 commit comments