aboutsummaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rw-r--r--t/open311/getupdates.t78
1 files changed, 63 insertions, 15 deletions
diff --git a/t/open311/getupdates.t b/t/open311/getupdates.t
index 500ac97d2..4376e2f4b 100644
--- a/t/open311/getupdates.t
+++ b/t/open311/getupdates.t
@@ -4,9 +4,7 @@ use strict;
use warnings;
use Test::More;
-use FindBin;
-use lib "$FindBin::Bin/../perllib";
-use lib "$FindBin::Bin/../commonlib/perllib";
+use FixMyStreet;
use_ok( 'Open311::GetUpdates' );
use_ok( 'Open311' );
@@ -51,12 +49,9 @@ my $problem = $problem_rs->new(
title => '',
detail => '',
used_map => 1,
- user_id => 1,
name => '',
state => 'confirmed',
- service => '',
cobrand => 'default',
- cobrand_data => '',
user => $user,
created => DateTime->now()->subtract( days => 1 ),
lastupdate => DateTime->now()->subtract( days => 1 ),
@@ -155,12 +150,9 @@ my $problem2 = $problem_rs->create(
title => '',
detail => '',
used_map => 1,
- user_id => 1,
name => '',
state => 'confirmed',
- service => '',
cobrand => 'default',
- cobrand_data => '',
user => $user,
created => DateTime->now()->subtract( days => 1 ),
lastupdate => DateTime->now()->subtract( days => 1 ),
@@ -189,10 +181,66 @@ subtest 'update with two requests' => sub {
is $problem2->comments->count, 1, 'added a comment to second problem';
};
-$problem->comments->delete;
-$problem->delete;
-$user->comments->delete;
-$user->problems->delete;
-$user->delete;
+# No status_notes field now, so that static string in code is used.
+$requests_xml = qq{<?xml version="1.0" encoding="utf-8"?>
+<service_requests>
+<request>
+<service_request_id>638346</service_request_id>
+<status>closed</status>
+<service_name>Sidewalk and Curb Issues</service_name>
+<service_code>006</service_code>
+<description></description>
+<agency_responsible></agency_responsible>
+<service_notice></service_notice>
+<requested_datetime>2010-04-14T06:37:38-08:00</requested_datetime>
+UPDATED_DATETIME
+<expected_datetime>2010-04-15T06:37:38-08:00</expected_datetime>
+<lat>37.762221815</lat>
+<long>-122.4651145</long>
+</request>
+</service_requests>
+};
-done_testing();
+my $problem3 = $problem_rs->create( {
+ postcode => 'EH99 1SP',
+ latitude => 1,
+ longitude => 1,
+ areas => 1,
+ title => 'Title',
+ detail => 'Details',
+ used_map => 1,
+ name => '',
+ state => 'confirmed',
+ cobrand => 'fixamingata',
+ user => $user,
+ created => DateTime->now()->subtract( days => 1 ),
+ lastupdate => DateTime->now()->subtract( days => 1 ),
+ anonymous => 1,
+ external_id => 638346,
+} );
+
+subtest 'test translation of auto-added comment from old-style Open311 update' => sub {
+ my $dt = sprintf( '<updated_datetime>%s</updated_datetime>', DateTime->now );
+ $requests_xml =~ s/UPDATED_DATETIME/$dt/;
+
+ my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'requests.xml' => $requests_xml } );
+
+ FixMyStreet::override_config {
+ ALLOWED_COBRANDS => [ 'fixamingata' ],
+ }, sub {
+ ok $updates->update_reports( [ 638346 ], $o, { name => 'Test Council' } );
+ };
+ is $o->test_uri_used, 'http://example.com/requests.xml?jurisdiction_id=mysociety&service_request_id=638346', 'get url';
+
+ is $problem3->comments->count, 1, 'added a comment';
+ is $problem3->comments->first->text, "St\xe4ngd av kommunen", 'correct comment text';
+};
+
+END {
+ if ($user) {
+ $user->comments->delete;
+ $user->problems->delete;
+ $user->delete;
+ }
+ done_testing();
+}