diff options
author | Struan Donald <struan@exo.org.uk> | 2011-12-05 11:52:25 +0000 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2011-12-05 11:52:25 +0000 |
commit | a34bd2635ae720403a942ca2ef41a2b2951ba31f (patch) | |
tree | c00869a170f94d31b295cef8dad110485f278418 /t/cobrand/closest.t | |
parent | e816c4cbe34f138d0ce5659000955b75745da009 (diff) |
add in some tests for closest address methods
Diffstat (limited to 't/cobrand/closest.t')
-rw-r--r-- | t/cobrand/closest.t | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/t/cobrand/closest.t b/t/cobrand/closest.t new file mode 100644 index 000000000..bb5dc8dae --- /dev/null +++ b/t/cobrand/closest.t @@ -0,0 +1,77 @@ +use strict; +use warnings; + +use Test::More; + +use mySociety::Locale; +use FixMyStreet::App; + +use_ok 'FixMyStreet::Cobrand'; + +mySociety::Locale::gettext_domain( 'FixMyStreet' ); + +my $c = FixMyStreet::Cobrand::Default->new(); + +my $user = + FixMyStreet::App->model('DB::User') + ->find_or_create( { email => 'test@example.com', name => 'Test User' } ); +ok $user, "created test user"; + +my $dt = DateTime->new( + year => 2011, + month => 04, + day => 16, + hour => 15, + minute => 47, + second => 23 +); + +my $report = FixMyStreet::App->model('DB::Problem')->find_or_create( + { + postcode => 'SW1A 1AA', + council => '2504', + areas => ',105255,11806,11828,2247,2504,', + category => 'Other', + title => 'Test 2', + detail => 'Test 2 Detail', + used_map => 't', + name => 'Test User', + anonymous => 'f', + state => 'closed', + confirmed => $dt->ymd . ' ' . $dt->hms, + lang => 'en-gb', + service => '', + cobrand => 'default', + cobrand_data => '', + send_questionnaire => 't', + latitude => '51.5016605453401', + longitude => '-0.142497580865087', + user_id => $user->id, + } +); +my $report_id = $report->id; +ok $report, "created test report - $report_id"; + +$report->geocode( undef ); + +ok !$report->geocode, 'no gecode entry for report'; + +my $near = $c->find_closest( $report->latitude, $report->longitude, $report ); + +ok $report->geocode, 'geocode entry added to report'; + +like $near, qr/Constitution Hill/i, 'nearest street looks right'; +like $near, qr/Nearest postcode .*: SW1A 1AA/i, 'nearest postcode looks right'; + +$near = $c->find_closest_address_for_rss( $report->latitude, $report->longitude, $report ); + +like $near, qr/Constitution Hill/i, 'nearest street for RSS looks right'; +unlike $near, qr/Nearest postcode/i, 'no nearest postcode in RSS text'; + +$report->geocode( undef ); +$near = $c->find_closest_address_for_rss( $report->latitude, $report->longitude, $report ); + +ok !$near, 'no closest address for RSS if not cached'; + +# all done +done_testing(); |