diff options
author | Struan Donald <struan@exo.org.uk> | 2011-10-11 10:13:47 +0100 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2011-10-11 10:13:47 +0100 |
commit | 7ddcddb27d0a3237e373757cbcc852974312a95a (patch) | |
tree | d8932da6c8c3f7c847af0321c3da7688650c633f /t/open311 | |
parent | bd24d2a0365e65cd6b0bc3623f2d7c16a5e4269a (diff) |
test existing contacts are deleted
udpate service code for contact with same category
Diffstat (limited to 't/open311')
-rw-r--r-- | t/open311/populate-service-list.t | 72 |
1 files changed, 71 insertions, 1 deletions
diff --git a/t/open311/populate-service-list.t b/t/open311/populate-service-list.t index 734af2a38..9cfa74c33 100644 --- a/t/open311/populate-service-list.t +++ b/t/open311/populate-service-list.t @@ -71,6 +71,76 @@ subtest 'check basic functionality' => sub { is $contact_count, 3, 'correct number of contacts'; }; +subtest 'check non open311 contacts marked as deleted' => sub { + FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->delete(); + + my $contact = FixMyStreet::App->model('DB::Contact')->create( + { + area_id => 1, + email => 'contact@example.com', + category => 'An old category', + confirmed => 1, + deleted => 0, + editor => $0, + whenedited => \'ms_current_timestamp()', + note => 'test contact', + } + ); + + my $xml = qq{<?xml version="1.0" encoding="utf-8"?> +<services> + <service> + <service_code>001</service_code> + <service_name>Cans left out 24x7</service_name> + <description>Garbage or recycling cans that have been left out for more than 24 hours after collection. Violators will be cited.</description> + <metadata>false</metadata> + <type>realtime</type> + <keywords>lorem, ipsum, dolor</keywords> + <group>sanitation</group> + </service> + <service> + <service_code>002</service_code> + <metadata>false</metadata> + <type>realtime</type> + <keywords>lorem, ipsum, dolor</keywords> + <group>street</group> + <service_name>Construction plate shifted</service_name> + <description>Metal construction plate covering the street or sidewalk has been moved.</description> + </service> + <service> + <service_code>003</service_code> + <metadata>false</metadata> + <type>realtime</type> + <keywords>lorem, ipsum, dolor</keywords> + <group>street</group> + <service_name>Curb or curb ramp defect</service_name> + <description>Sidewalk curb or ramp has problems such as cracking, missing pieces, holes, and/or chipped curb.</description> + </service> +</services> +}; + + my $simple = XML::Simple->new(); + my $obj; + + eval { + $obj = $simple->XMLin( $xml ); + }; + + my $council = FixMyStreet::App->model('DB::Open311Conf')->new( { + area_id => 1 + } ); + + my $processor = Open311::PopulateServiceList->new( council_list => [] ); + $processor->_current_council( $council ); + $processor->process_services( $obj ); + + my $contact_count = FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->count(); + is $contact_count, 4, 'correct number of contacts'; + + $contact_count = FixMyStreet::App->model('DB::Contact')->search( { area_id => 1, deleted => 1 } )->count(); + is $contact_count, 1, 'correct number of deleted contacts'; +}; + subtest 'check duplicate service name issues error' => sub { FixMyStreet::App->model('DB::Contact')->search( { area_id => 1 } )->delete(); @@ -137,7 +207,7 @@ subtest 'check duplicate service name issues error' => sub { $processor->process_services( $obj ); $contact->discard_changes; - is $contact->email, '009', 'email unchanged'; + is $contact->email, '001', 'email unchanged'; is $contact->confirmed, 1, 'contact still confirmed'; is $contact->deleted, 0, 'contact still not deleted'; |