aboutsummaryrefslogtreecommitdiffstats
path: root/t/open311/getservicerequestupdates.t
diff options
context:
space:
mode:
Diffstat (limited to 't/open311/getservicerequestupdates.t')
-rw-r--r--t/open311/getservicerequestupdates.t57
1 files changed, 39 insertions, 18 deletions
diff --git a/t/open311/getservicerequestupdates.t b/t/open311/getservicerequestupdates.t
index 9852e53b6..3f9c35c32 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(
{
@@ -305,7 +331,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>$test->{comment_status}</status># if $test->{comment_status};
- 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 ) );
@@ -347,7 +373,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;
@@ -417,7 +443,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} };
@@ -431,7 +457,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 );
@@ -479,7 +505,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>
@@ -487,7 +512,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>
@@ -516,7 +540,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,
@@ -555,7 +579,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>
@@ -563,7 +586,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>
@@ -579,7 +601,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,
@@ -609,7 +631,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>
@@ -631,7 +652,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,