diff options
Diffstat (limited to 't/open311/getservicerequestupdates.t')
-rw-r--r-- | t/open311/getservicerequestupdates.t | 57 |
1 files changed, 39 insertions, 18 deletions
diff --git a/t/open311/getservicerequestupdates.t b/t/open311/getservicerequestupdates.t index 7ec8d5ae0..aba811e58 100644 --- a/t/open311/getservicerequestupdates.t +++ b/t/open311/getservicerequestupdates.t @@ -26,7 +26,6 @@ my $requests_xml = qq{<?xml version="1.0" encoding="utf-8"?> <request_update> <update_id>638344</update_id> <service_request_id>1</service_request_id> -<service_request_id_ext>1</service_request_id_ext> <status>open</status> <description>This is a note</description> UPDATED_DATETIME @@ -42,25 +41,25 @@ for my $test ( { desc => 'basic parsing - element missing', updated_datetime => '', - res => { update_id => 638344, service_request_id => 1, service_request_id_ext => 1, + res => { update_id => 638344, service_request_id => 1, status => 'open', description => 'This is a note' }, }, { desc => 'basic parsing - empty element', updated_datetime => '<updated_datetime />', - res => { update_id => 638344, service_request_id => 1, service_request_id_ext => 1, + res => { update_id => 638344, service_request_id => 1, status => 'open', description => 'This is a note', updated_datetime => {} } , }, { desc => 'basic parsing - element with no content', updated_datetime => '<updated_datetime></updated_datetime>', - res => { update_id => 638344, service_request_id => 1, service_request_id_ext => 1, + res => { update_id => 638344, service_request_id => 1, status => 'open', description => 'This is a note', updated_datetime => {} } , }, { desc => 'basic parsing - element with content', updated_datetime => sprintf( '<updated_datetime>%s</updated_datetime>', $dt ), - res => { update_id => 638344, service_request_id => 1, service_request_id_ext => 1, + res => { update_id => 638344, service_request_id => 1, status => 'open', description => 'This is a note', updated_datetime => $dt } , }, ) { @@ -68,7 +67,7 @@ for my $test ( my $local_requests_xml = $requests_xml; $local_requests_xml =~ s/UPDATED_DATETIME/$test->{updated_datetime}/; - my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'update.xml' => $local_requests_xml } ); + my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'servicerequestupdates.xml' => $local_requests_xml } ); my $res = $o->get_service_request_updates; is_deeply $res->[0], $test->{ res }, 'result looks correct'; @@ -76,6 +75,33 @@ for my $test ( }; } +subtest 'check extended request parsed correctly' => sub { + my $extended_requests_xml = qq{<?xml version="1.0" encoding="utf-8"?> + <service_requests_updates> + <request_update> + <update_id>638344</update_id> + <service_request_id_ext>120384</service_request_id_ext> + <service_request_id>1</service_request_id> + <status>open</status> + <description>This is a note</description> + UPDATED_DATETIME + </request_update> + </service_requests_updates> + }; + + my $updated_datetime = sprintf( '<updated_datetime>%s</updated_datetime>', $dt ); + my $expected_res = { update_id => 638344, service_request_id => 1, service_request_id_ext => 120384, + status => 'open', description => 'This is a note', updated_datetime => $dt }; + + $extended_requests_xml =~ s/UPDATED_DATETIME/$updated_datetime/; + + my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'servicerequestupdates.xml' => $extended_requests_xml } ); + + my $res = $o->get_service_request_updates; + is_deeply $res->[0], $expected_res, 'result looks correct'; + +}; + my $problem_rs = FixMyStreet::App->model('DB::Problem'); my $problem = $problem_rs->new( { @@ -171,7 +197,7 @@ for my $test ( $local_requests_xml =~ s#<service_request_id_ext>\d+</service_request_id_ext>#<service_request_id_ext>@{[$problem->id]}</service_request_id_ext>#; $local_requests_xml =~ s#<status>\w+</status>#<status>closed</status># if $test->{close_comment}; - my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'update.xml' => $local_requests_xml } ); + my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'servicerequestupdates.xml' => $local_requests_xml } ); $problem->comments->delete; $problem->lastupdate( DateTime->now()->subtract( days => 1 ) ); @@ -213,7 +239,7 @@ foreach my $test ( $local_requests_xml =~ s#<service_request_id>\d+</service_request_id>#<service_request_id>@{[$problem->external_id]}</service_request_id>#; $local_requests_xml =~ s#<service_request_id_ext>\d+</service_request_id_ext>#<service_request_id_ext>@{[$problem->id]}</service_request_id_ext>#; - my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'update.xml' => $local_requests_xml } ); + my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'servicerequestupdates.xml' => $local_requests_xml } ); $problem->comments->delete; @@ -283,7 +309,7 @@ for my $test ( $local_requests_xml =~ s#<service_request_id>\d+</service_request_id>#<service_request_id>$test->{request_id}</service_request_id>#; $local_requests_xml =~ s#<service_request_id_ext>\d+</service_request_id_ext>#<service_request_id_ext>$test->{request_id_ext}</service_request_id_ext>#; - my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'update.xml' => $local_requests_xml } ); + my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'servicerequestupdates.xml' => $local_requests_xml } ); my $council_details = { areaid => $test->{area_id} }; @@ -297,7 +323,7 @@ for my $test ( subtest 'using start and end date' => sub { my $local_requests_xml = $requests_xml; - my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'update.xml' => $local_requests_xml } ); + my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'servicerequestupdates.xml' => $local_requests_xml } ); my $start_dt = DateTime->now(); $start_dt->subtract( days => 1 ); @@ -345,7 +371,6 @@ subtest 'check that existing comments are not duplicated' => sub { <request_update> <update_id>638344</update_id> <service_request_id>@{[ $problem->external_id ]}</service_request_id> - <service_request_id_ext>@{[ $problem->id ]}</service_request_id_ext> <status>open</status> <description>This is a note</description> <updated_datetime>UPDATED_DATETIME</updated_datetime> @@ -353,7 +378,6 @@ subtest 'check that existing comments are not duplicated' => sub { <request_update> <update_id>638354</update_id> <service_request_id>@{[ $problem->external_id ]}</service_request_id> - <service_request_id_ext>@{[ $problem->id ]}</service_request_id_ext> <status>open</status> <description>This is a different note</description> <updated_datetime>UPDATED_DATETIME2</updated_datetime> @@ -382,7 +406,7 @@ subtest 'check that existing comments are not duplicated' => sub { $requests_xml =~ s/UPDATED_DATETIME2/$dt/; $requests_xml =~ s/UPDATED_DATETIME/@{[ $comment->confirmed ]}/; - my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'update.xml' => $requests_xml } ); + my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'servicerequestupdates.xml' => $requests_xml } ); my $update = Open311::GetServiceRequestUpdates->new( system_user => $user, @@ -421,7 +445,6 @@ foreach my $test ( { <request_update> <update_id>638344</update_id> <service_request_id>@{[ $problem->external_id ]}</service_request_id> - <service_request_id_ext>@{[ $problem->id ]}</service_request_id_ext> <status>closed</status> <description>This is a note</description> <updated_datetime>UPDATED_DATETIME</updated_datetime> @@ -429,7 +452,6 @@ foreach my $test ( { <request_update> <update_id>638354</update_id> <service_request_id>@{[ $problem->external_id ]}</service_request_id> - <service_request_id_ext>@{[ $problem->id ]}</service_request_id_ext> <status>open</status> <description>This is a different note</description> <updated_datetime>UPDATED_DATETIME2</updated_datetime> @@ -445,7 +467,7 @@ foreach my $test ( { $requests_xml =~ s/UPDATED_DATETIME/$test->{dt1}/; $requests_xml =~ s/UPDATED_DATETIME2/$test->{dt2}/; - my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'update.xml' => $requests_xml } ); + my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'servicerequestupdates.xml' => $requests_xml } ); my $update = Open311::GetServiceRequestUpdates->new( system_user => $user, @@ -475,7 +497,6 @@ foreach my $test ( { <request_update> <update_id>638344</update_id> <service_request_id>@{[ $problem->external_id ]}</service_request_id> - <service_request_id_ext>@{[ $problem->id ]}</service_request_id_ext> <status>closed</status> <description>This is a note</description> <updated_datetime>UPDATED_DATETIME</updated_datetime> @@ -497,7 +518,7 @@ foreach my $test ( { $requests_xml =~ s/UPDATED_DATETIME/$dt/; - my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'update.xml' => $requests_xml } ); + my $o = Open311->new( jurisdiction => 'mysociety', endpoint => 'http://example.com', test_mode => 1, test_get_returns => { 'servicerequestupdates.xml' => $requests_xml } ); my $update = Open311::GetServiceRequestUpdates->new( system_user => $user, |