@@ -93,9 +93,9 @@ public function findByDistanceWithoutCoordinates(): void
9393 $ addressSearch ->setPids ('2 ' );
9494
9595 $ addresses = $ this ->addressRepository ->findByDistance ($ addressSearch );
96- $ this ->assertSame (
96+ $ this ->assertCount (
9797 16 ,
98- count ( $ addresses)
98+ $ addresses
9999 );
100100 }
101101
@@ -294,4 +294,154 @@ public function findByDistanceWithSearchWord(): void
294294 $ addresses
295295 );
296296 }
297+
298+ /**
299+ * @test
300+ */
301+ public function findByDistanceWithoutRadiusAndSortingByTitle (): void
302+ {
303+ $ addressSearch = new AddressSearch ();
304+ $ addressSearch ->setPids ('2 ' );
305+ $ addressSearch ->setOrderBy ('title ' );
306+
307+ $ addresses = $ this ->addressRepository ->findByDistance ($ addressSearch );
308+ $ this ->assertSame (
309+ 'Abgeordnetenhaus von Berlin ' ,
310+ $ addresses [0 ]['title ' ]
311+ );
312+ $ this ->assertSame (
313+ 'Bayerischer Landtag ' ,
314+ $ addresses [1 ]['title ' ]
315+ );
316+ $ this ->assertSame (
317+ 'Bremische Bürgerschaft ' ,
318+ $ addresses [2 ]['title ' ]
319+ );
320+ $ this ->assertSame (
321+ 'Landtag von Baden-Württemberg ' ,
322+ $ addresses [10 ]['title ' ]
323+ );
324+ $ this ->assertSame (
325+ 'Thüringer Landtag ' ,
326+ $ addresses [15 ]['title ' ]
327+ );
328+ }
329+
330+ /**
331+ * @test
332+ */
333+ public function findByDistanceWithoutRadiusAndSortingByDistance (): void
334+ {
335+ $ addressSearch = new AddressSearch ();
336+ $ addressSearch ->setPids ('2 ' );
337+ $ addressSearch ->setOrderBy ('distance ' );
338+
339+ $ addresses = $ this ->addressRepository ->findByDistance ($ addressSearch );
340+ $ this ->assertSame (
341+ 'Landtag von Baden-Württemberg ' ,
342+ $ addresses [0 ]['title ' ]
343+ );
344+ $ this ->assertSame (
345+ 'Bayerischer Landtag ' ,
346+ $ addresses [1 ]['title ' ]
347+ );
348+ $ this ->assertSame (
349+ 'Abgeordnetenhaus von Berlin ' ,
350+ $ addresses [2 ]['title ' ]
351+ );
352+ $ this ->assertSame (
353+ 'Landtag Rheinland-Pfalz ' ,
354+ $ addresses [10 ]['title ' ]
355+ );
356+ $ this ->assertSame (
357+ 'Thüringer Landtag ' ,
358+ $ addresses [15 ]['title ' ]
359+ );
360+
361+ $ addressSearch ->setFallbackOrderBy ('title ' );
362+ $ addresses = $ this ->addressRepository ->findByDistance ($ addressSearch );
363+ $ this ->assertSame (
364+ 'Abgeordnetenhaus von Berlin ' ,
365+ $ addresses [0 ]['title ' ]
366+ );
367+ $ this ->assertSame (
368+ 'Bayerischer Landtag ' ,
369+ $ addresses [1 ]['title ' ]
370+ );
371+ $ this ->assertSame (
372+ 'Bremische Bürgerschaft ' ,
373+ $ addresses [2 ]['title ' ]
374+ );
375+ $ this ->assertSame (
376+ 'Landtag von Baden-Württemberg ' ,
377+ $ addresses [10 ]['title ' ]
378+ );
379+ $ this ->assertSame (
380+ 'Thüringer Landtag ' ,
381+ $ addresses [15 ]['title ' ]
382+ );
383+ }
384+
385+ /**
386+ * @test
387+ */
388+ public function findByDistanceWithRadiusAndSortingByDistance (): void
389+ {
390+ // Berlin Alexanderplatz
391+ $ addressSearch = new AddressSearch ();
392+ $ addressSearch ->setLat (52.5225068 );
393+ $ addressSearch ->setLon (13.4206053 );
394+ $ addressSearch ->setRadius (200 );
395+ $ addressSearch ->setPids ('2 ' );
396+ $ addressSearch ->setOrderBy ('distance ' );
397+
398+ $ addresses = $ this ->addressRepository ->findByDistance ($ addressSearch );
399+
400+ $ this ->assertSame (
401+ 'Abgeordnetenhaus von Berlin ' ,
402+ $ addresses ['3.2643554966074 ' ]['title ' ]
403+ );
404+ $ this ->assertSame (
405+ 'Landtag Brandenburg ' ,
406+ $ addresses ['28.651891958674 ' ]['title ' ]
407+ );
408+ $ this ->assertSame (
409+ 'Landtag Mecklenburg-Vorpommern ' ,
410+ $ addresses ['181.56386274957 ' ]['title ' ]
411+ );
412+ $ this ->assertSame (
413+ 'Sächsischer Landtag ' ,
414+ $ addresses ['164.39912286221 ' ]['title ' ]
415+ );
416+ $ this ->assertSame (
417+ 'Landtag von Sachsen-Anhalt ' ,
418+ $ addresses ['129.23779803243 ' ]['title ' ]
419+ );
420+
421+ $ addressSearch ->setOrderBy ('distance ' );
422+ $ addressSearch ->setFallbackOrderBy ('title ' );
423+
424+ $ addresses = $ this ->addressRepository ->findByDistance ($ addressSearch );
425+
426+ $ this ->assertSame (
427+ 'Abgeordnetenhaus von Berlin ' ,
428+ $ addresses [0 ]['title ' ]
429+ );
430+ $ this ->assertSame (
431+ 'Landtag Brandenburg ' ,
432+ $ addresses [5 ]['title ' ]
433+ );
434+ $ this ->assertSame (
435+ 'Landtag Mecklenburg-Vorpommern ' ,
436+ $ addresses [6 ]['title ' ]
437+ );
438+ $ this ->assertSame (
439+ 'Landtag von Sachsen-Anhalt ' ,
440+ $ addresses [11 ]['title ' ]
441+ );
442+ $ this ->assertSame (
443+ 'Sächsischer Landtag ' ,
444+ $ addresses [14 ]['title ' ]
445+ );
446+ }
297447}
0 commit comments