aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHakim Cassimally <hakim@mysociety.org>2014-07-25 15:10:57 +0000
committerHakim Cassimally <hakim@mysociety.org>2014-10-16 16:56:27 +0000
commit1708bc30af7176f95f0ec5718289d3a633daf32b (patch)
tree989803d0b6fa594ebca3a86f7d2ef1e489cfc515
parent9dacce035c39b52e66b6ebed23b9c33613375ca4 (diff)
Open311: FMS <-> Open311 Endpoint End to end tests
Uses LWP::Protocol::PSGI to avoid having to spawn external processes in order to test these end to end.
-rw-r--r--cpanfile2
-rw-r--r--cpanfile.snapshot569
-rw-r--r--perllib/Open311/PopulateServiceList.pm1
-rw-r--r--t/open311/endpoint/mysociety.t12
-rw-r--r--t/open311/endpoint/warwick.t140
-rw-r--r--t/open311/populate-service-list.t4
6 files changed, 447 insertions, 281 deletions
diff --git a/cpanfile b/cpanfile
index 8c48bc519..4a15ea7f5 100644
--- a/cpanfile
+++ b/cpanfile
@@ -97,6 +97,8 @@ feature 'open311-endpoint', 'Open311::Endpoint specific requirements' => sub {
requires 'Data::Rx';
requires 'MooX::HandlesVia';
requires 'Types::Standard';
+ requires 'LWP::Protocol::PSGI'; # for testing end-to-end
+ requires 'DateTime::Format::Oracle'; # for EXOR
};
#feature 'zurich', 'Zueri wie neu specific requirements' => sub {
diff --git a/cpanfile.snapshot b/cpanfile.snapshot
index 83b409e41..3fb17bc1e 100644
--- a/cpanfile.snapshot
+++ b/cpanfile.snapshot
@@ -116,6 +116,15 @@ DISTRIBUTIONS
provides:
CPAN::Meta::Requirements 2.122
requirements:
+ Carp 0
+ ExtUtils::MakeMaker 6.17
+ File::Find 0
+ File::Temp 0
+ Scalar::Util 0
+ Test::More 0.88
+ strict 0
+ version 0.77
+ warnings 0
CPAN-Meta-YAML-0.008
pathname: D/DA/DAGOLDEN/CPAN-Meta-YAML-0.008.tar.gz
provides:
@@ -811,18 +820,6 @@ DISTRIBUTIONS
requirements:
ExtUtils::MakeMaker 0
Test::More 0
- Compress-Raw-Bzip2-2.060
- pathname: P/PM/PMQS/Compress-Raw-Bzip2-2.060.tar.gz
- provides:
- Compress::Raw::Bzip2 2.060
- requirements:
- ExtUtils::MakeMaker 0
- Compress-Raw-Zlib-2.060
- pathname: P/PM/PMQS/Compress-Raw-Zlib-2.060.tar.gz
- provides:
- Compress::Raw::Zlib 2.060
- requirements:
- ExtUtils::MakeMaker 0
Config-Any-0.23
pathname: B/BR/BRICAS/Config-Any-0.23.tar.gz
provides:
@@ -861,6 +858,12 @@ DISTRIBUTIONS
Test::Exception 0
Test::More 0
ok 0
+ Convert-NLS_DATE_FORMAT-0.05
+ pathname: K/KO/KOLIBRIE/Convert-NLS_DATE_FORMAT-0.05.tar.gz
+ provides:
+ Convert::NLS_DATE_FORMAT 0.05
+ requirements:
+ ExtUtils::MakeMaker 0
Crypt-Eksblowfish-0.009
pathname: Z/ZE/ZEFRAM/Crypt-Eksblowfish-0.009.tar.gz
provides:
@@ -1264,13 +1267,6 @@ DISTRIBUTIONS
Symbol 0
Test 0
perl 5.006
- Data-Dumper-2.145
- pathname: S/SM/SMUELLER/Data-Dumper-2.145.tar.gz
- provides:
- Data::Dumper 2.145
- requirements:
- ExtUtils::MakeMaker 0
- Test::More 0.98
Data-Dumper-Concise-2.020
pathname: F/FR/FREW/Data-Dumper-Concise-2.020.tar.gz
provides:
@@ -1439,7 +1435,6 @@ DISTRIBUTIONS
requirements:
DateTime 0.17
HTTP::Date 1.44
- Module::Build 0.36
Test::More 0.47
DateTime-Format-ISO8601-0.08
pathname: J/JH/JHOBLITT/DateTime-Format-ISO8601-0.08.tar.gz
@@ -1458,6 +1453,16 @@ DISTRIBUTIONS
Module::Build 0
Params::Validate 0.67
Test::More 0.47
+ DateTime-Format-Oracle-0.06
+ pathname: K/KO/KOLIBRIE/DateTime-Format-Oracle-0.06.tar.gz
+ provides:
+ DateTime::Format::Oracle 0.06
+ requirements:
+ Convert::NLS_DATE_FORMAT 0.03
+ DateTime 0
+ DateTime::Format::Builder 0
+ ExtUtils::MakeMaker 0
+ Test::More 0
DateTime-Format-Pg-0.16008
pathname: D/DM/DMAKI/DateTime-Format-Pg-0.16008.tar.gz
provides:
@@ -1965,7 +1970,7 @@ DISTRIBUTIONS
DateTime::Locale::zu_ZA undef
requirements:
List::MoreUtils 0
- Module::Build 0.36
+ Module::Build 0
Params::Validate 0.91
perl 5.006
DateTime-TimeZone-1.58
@@ -2430,19 +2435,10 @@ DISTRIBUTIONS
provides:
Devel::GlobalDestruction 0.11
requirements:
- Devel::GlobalDestruction::XS 0
ExtUtils::CBuilder 0.27
ExtUtils::MakeMaker 0
Sub::Exporter::Progressive 0.001006
perl 5.006
- Devel-GlobalDestruction-XS-0.01
- pathname: R/RI/RIBASUSHI/Devel-GlobalDestruction-XS-0.01.tar.gz
- provides:
- Devel::GlobalDestruction::XS 0.01
- requirements:
- ExtUtils::CBuilder 0.27
- ExtUtils::MakeMaker 0
- perl 5.006
Devel-StackTrace-1.30
pathname: D/DR/DROLSKY/Devel-StackTrace-1.30.tar.gz
provides:
@@ -2664,33 +2660,44 @@ DISTRIBUTIONS
requirements:
ExtUtils::MakeMaker 6.17
perl 5.006001
- ExtUtils-CBuilder-0.280205
- pathname: D/DA/DAGOLDEN/ExtUtils-CBuilder-0.280205.tar.gz
- provides:
- ExtUtils::CBuilder 0.280205
- ExtUtils::CBuilder::Base 0.280205
- ExtUtils::CBuilder::Platform::Unix 0.280205
- ExtUtils::CBuilder::Platform::VMS 0.280205
- ExtUtils::CBuilder::Platform::Windows 0.280205
- ExtUtils::CBuilder::Platform::Windows::BCC 0.280205
- ExtUtils::CBuilder::Platform::Windows::GCC 0.280205
- ExtUtils::CBuilder::Platform::Windows::MSVC 0.280205
- ExtUtils::CBuilder::Platform::aix 0.280205
- ExtUtils::CBuilder::Platform::cygwin 0.280205
- ExtUtils::CBuilder::Platform::darwin 0.280205
- ExtUtils::CBuilder::Platform::dec_osf 0.280205
- ExtUtils::CBuilder::Platform::os2 0.280205
+ ExtUtils-Config-0.008
+ pathname: L/LE/LEONT/ExtUtils-Config-0.008.tar.gz
+ provides:
+ ExtUtils::Config 0.008
requirements:
- Cwd 0
+ Data::Dumper 0
+ ExtUtils::MakeMaker 6.30
+ strict 0
+ warnings 0
+ ExtUtils-Helpers-0.022
+ pathname: L/LE/LEONT/ExtUtils-Helpers-0.022.tar.gz
+ provides:
+ ExtUtils::Helpers 0.022
+ ExtUtils::Helpers::Unix 0.022
+ ExtUtils::Helpers::VMS 0.022
+ ExtUtils::Helpers::Windows 0.022
+ requirements:
+ Carp 0
+ Exporter 5.57
ExtUtils::MakeMaker 6.30
File::Basename 0
- File::Spec 3.13
- File::Temp 0
- IO::File 0
- IPC::Cmd 0
- Perl::OSType 0
- Test::More 0.47
- Text::ParseWords 0
+ File::Copy 0
+ File::Spec::Functions 0
+ Module::Load 0
+ Text::ParseWords 3.24
+ strict 0
+ warnings 0
+ ExtUtils-InstallPaths-0.010
+ pathname: L/LE/LEONT/ExtUtils-InstallPaths-0.010.tar.gz
+ provides:
+ ExtUtils::InstallPaths 0.010
+ requirements:
+ Carp 0
+ ExtUtils::Config 0.002
+ ExtUtils::MakeMaker 6.30
+ File::Spec 0
+ strict 0
+ warnings 0
ExtUtils-MakeMaker-6.72
pathname: B/BI/BINGOS/ExtUtils-MakeMaker-6.72.tar.gz
provides:
@@ -2732,30 +2739,6 @@ DISTRIBUTIONS
File::Spec 0.8
Pod::Man 0
perl 5.006
- ExtUtils-ParseXS-3.21
- pathname: S/SM/SMUELLER/ExtUtils-ParseXS-3.21.tar.gz
- provides:
- ExtUtils::ParseXS 3.21
- ExtUtils::ParseXS::Constants 3.21
- ExtUtils::ParseXS::CountLines 3.21
- ExtUtils::ParseXS::Eval 3.21
- ExtUtils::ParseXS::Utilities 3.21
- ExtUtils::Typemaps 3.21
- ExtUtils::Typemaps::Cmd 3.21
- ExtUtils::Typemaps::InputMap 3.21
- ExtUtils::Typemaps::OutputMap 3.21
- ExtUtils::Typemaps::Type 3.21
- requirements:
- Carp 0
- Cwd 0
- DynaLoader 0
- Exporter 0
- ExtUtils::CBuilder 0
- ExtUtils::MakeMaker 6.46
- File::Basename 0
- File::Spec 0
- Symbol 0
- Test::More 0.47
FCGI-0.74
pathname: F/FL/FLORA/FCGI-0.74.tar.gz
provides:
@@ -2901,6 +2884,12 @@ DISTRIBUTIONS
overload 0
strict 0
warnings 0
+ Guard-1.022
+ pathname: M/ML/MLEHMANN/Guard-1.022.tar.gz
+ provides:
+ Guard 1.022
+ requirements:
+ ExtUtils::MakeMaker 0
HTML-Form-6.03
pathname: G/GA/GAAS/HTML-Form-6.03.tar.gz
provides:
@@ -3131,45 +3120,6 @@ DISTRIBUTIONS
Filter::Util::Call 0
Test::More 0
perl 5.006002
- IO-Compress-2.060
- pathname: P/PM/PMQS/IO-Compress-2.060.tar.gz
- provides:
- Compress::Zlib 2.060
- File::GlobMapper 1.000
- IO::Compress undef
- IO::Compress::Adapter::Bzip2 2.060
- IO::Compress::Adapter::Deflate 2.060
- IO::Compress::Adapter::Identity 2.060
- IO::Compress::Base 2.060
- IO::Compress::Base::Common 2.060
- IO::Compress::Bzip2 2.060
- IO::Compress::Deflate 2.060
- IO::Compress::Gzip 2.060
- IO::Compress::Gzip::Constants 2.060
- IO::Compress::RawDeflate 2.060
- IO::Compress::Zip 2.060
- IO::Compress::Zip::Constants 2.060
- IO::Compress::Zlib::Constants 2.060
- IO::Compress::Zlib::Extra 2.060
- IO::Uncompress::Adapter::Bunzip2 2.060
- IO::Uncompress::Adapter::Identity 2.060
- IO::Uncompress::Adapter::Inflate 2.060
- IO::Uncompress::AnyInflate 2.060
- IO::Uncompress::AnyUncompress 2.060
- IO::Uncompress::Base 2.060
- IO::Uncompress::Bunzip2 2.060
- IO::Uncompress::Gunzip 2.060
- IO::Uncompress::Inflate 2.060
- IO::Uncompress::RawInflate 2.060
- IO::Uncompress::Unzip 2.060
- U64 2.060
- Zlib::OldDeflate 2.060
- Zlib::OldInflate 2.060
- requirements:
- Compress::Raw::Bzip2 2.060
- Compress::Raw::Zlib 2.060
- ExtUtils::MakeMaker 0
- Scalar::Util 0
IO-HTML-1.00
pathname: C/CJ/CJM/IO-HTML-1.00.tar.gz
provides:
@@ -3260,6 +3210,18 @@ DISTRIBUTIONS
requirements:
ExtUtils::MakeMaker 0
perl 5.006002
+ LWP-Protocol-PSGI-0.07
+ pathname: M/MI/MIYAGAWA/LWP-Protocol-PSGI-0.07.tar.gz
+ provides:
+ LWP::Protocol::PSGI 0.07
+ requirements:
+ Guard 0
+ HTTP::Message::PSGI 0
+ LWP 5
+ LWP::Protocol 0
+ Module::Build::Tiny 0.036
+ parent 0
+ perl 5.008001
LWP-Protocol-https-6.03
pathname: G/GA/GAAS/LWP-Protocol-https-6.03.tar.gz
provides:
@@ -3569,6 +3531,31 @@ DISTRIBUTIONS
Text::ParseWords 0
perl 5.006001
version 0.87
+ Module-Build-Tiny-0.037
+ pathname: L/LE/LEONT/Module-Build-Tiny-0.037.tar.gz
+ provides:
+ Module::Build::Tiny 0.037
+ requirements:
+ CPAN::Meta 0
+ DynaLoader 0
+ Exporter 5.57
+ ExtUtils::CBuilder 0
+ ExtUtils::Config 0.003
+ ExtUtils::Helpers 0.020
+ ExtUtils::Install 0
+ ExtUtils::InstallPaths 0.002
+ ExtUtils::ParseXS 0
+ File::Basename 0
+ File::Find 0
+ File::Path 0
+ File::Spec::Functions 0
+ Getopt::Long 2.36
+ JSON::PP 2
+ Pod::Man 0
+ TAP::Harness::Env 0
+ perl 5.006
+ strict 0
+ warnings 0
Module-Find-0.11
pathname: C/CR/CRENZ/Module-Find-0.11.tar.gz
provides:
@@ -3658,20 +3645,6 @@ DISTRIBUTIONS
Test::More 0.86
YAML::Tiny 1.38
perl 5.005
- Module-Metadata-1.000014
- pathname: B/BO/BOBTFISH/Module-Metadata-1.000014.tar.gz
- provides:
- Module::Metadata 1.000014
- requirements:
- Carp 0
- ExtUtils::MakeMaker 0
- File::Find 0
- File::Spec 0
- IO::File 0
- strict 0
- vars 0
- version 0.87
- warnings 0
Module-Runtime-0.013
pathname: Z/ZE/ZEFRAM/Module-Runtime-0.013.tar.gz
provides:
@@ -4635,21 +4608,6 @@ DISTRIBUTIONS
File::Basename 0
Scalar::Util 0
Test 0
- Perl-OSType-1.003
- pathname: D/DA/DAGOLDEN/Perl-OSType-1.003.tar.gz
- provides:
- Perl::OSType 1.003
- requirements:
- Exporter 0
- ExtUtils::MakeMaker 6.30
- File::Find 0
- File::Spec::Functions 0
- File::Temp 0
- List::Util 0
- Test::More 0.88
- constant 0
- strict 0
- warnings 0
Plack-1.0018
pathname: M/MI/MIYAGAWA/Plack-1.0018.tar.gz
provides:
@@ -4958,82 +4916,130 @@ DISTRIBUTIONS
XML::Parser 2.23
constant 0
perl 5.006
- SOAP-WSDL-2.00.10
- pathname: M/MK/MKUTTER/SOAP-WSDL-2.00.10.tar.gz
- provides:
- SOAP::WSDL 2.000010
- SOAP::WSDL::Base 2.000010
- SOAP::WSDL::Binding 2.000010
- SOAP::WSDL::Client 2.000010
- SOAP::WSDL::Client::Base 2.000010
- SOAP::WSDL::Definitions 2.000010
- SOAP::WSDL::Deserializer::Hash 2.000010
- SOAP::WSDL::Deserializer::SOM 2.000010
- SOAP::WSDL::Deserializer::XSD 2.000010
- SOAP::WSDL::Expat::Base 2.000010
- SOAP::WSDL::Expat::Message2Hash 2.000010
- SOAP::WSDL::Expat::MessageParser 2.000010
- SOAP::WSDL::Expat::MessageStreamParser 2.000010
- SOAP::WSDL::Expat::WSDLParser 2.000010
- SOAP::WSDL::Factory::Deserializer 2.000010
- SOAP::WSDL::Factory::Generator 2.000010
- SOAP::WSDL::Factory::Serializer 2.000010
- SOAP::WSDL::Factory::Transport 2.000010
- SOAP::WSDL::Generator::Iterator::WSDL11 2.000010
- SOAP::WSDL::Generator::PrefixResolver 2.000010
- SOAP::WSDL::Generator::Template 2.000010
- SOAP::WSDL::Generator::Template::Plugin::XSD 2.000010
- SOAP::WSDL::Generator::Template::XSD 2.000010
- SOAP::WSDL::Generator::Visitor 2.000010
- SOAP::WSDL::Generator::Visitor::Typemap 2.000010
- SOAP::WSDL::Message 2.000010
- SOAP::WSDL::OpMessage 2.000010
- SOAP::WSDL::Operation 2.000010
- SOAP::WSDL::Part 2.000010
- SOAP::WSDL::Port 2.000010
- SOAP::WSDL::PortType 2.000010
- SOAP::WSDL::SOAP::Address 2.000010
- SOAP::WSDL::SOAP::Body 2.000010
- SOAP::WSDL::SOAP::Header 2.000010
- SOAP::WSDL::SOAP::HeaderFault 2.000010
- SOAP::WSDL::SOAP::Operation 2.000010
- SOAP::WSDL::SOAP::Typelib::Fault 2.000010
- SOAP::WSDL::SOAP::Typelib::Fault11 2.000010
- SOAP::WSDL::Serializer::XSD 2.000010
- SOAP::WSDL::Server 2.000010
- SOAP::WSDL::Server::CGI 2.000010
- SOAP::WSDL::Server::Mod_Perl2 2.000010
- SOAP::WSDL::Server::Simple 2.000010
- SOAP::WSDL::Service 2.000010
- SOAP::WSDL::Transport::HTTP 2.000010
- SOAP::WSDL::Transport::Loopback 2.000010
- SOAP::WSDL::Transport::Test 2.000010
- SOAP::WSDL::TypeLookup 2.000010
- SOAP::WSDL::Types 2.000010
- SOAP::WSDL::XSD::Annotation 2.000010
- SOAP::WSDL::XSD::Attribute 2.000010
- SOAP::WSDL::XSD::AttributeGroup 2.000010
- SOAP::WSDL::XSD::Builtin 2.000010
- SOAP::WSDL::XSD::ComplexType 2.000010
- SOAP::WSDL::XSD::Element 2.000010
- SOAP::WSDL::XSD::Enumeration 2.000010
- SOAP::WSDL::XSD::FractionDigits 2.000010
- SOAP::WSDL::XSD::Group 2.000010
- SOAP::WSDL::XSD::Length 2.000010
- SOAP::WSDL::XSD::MaxExclusive 2.000010
- SOAP::WSDL::XSD::MaxInclusive 2.000010
- SOAP::WSDL::XSD::MaxLength 2.000010
- SOAP::WSDL::XSD::MinExclusive 2.000010
- SOAP::WSDL::XSD::MinInclusive 2.000010
- SOAP::WSDL::XSD::MinLength 2.000010
- SOAP::WSDL::XSD::Pattern 2.000010
- SOAP::WSDL::XSD::Schema 2.000010
- SOAP::WSDL::XSD::Schema::Builtin 2.000010
- SOAP::WSDL::XSD::SimpleType 2.000010
- SOAP::WSDL::XSD::TotalDigits 2.000010
- SOAP::WSDL::XSD::Typelib::Attribute 2.000010
- SOAP::WSDL::XSD::Typelib::AttributeSet 2.000010
- SOAP::WSDL::XSD::Typelib::Builtin 2.000010
+ SOAP-WSDL-v3.002
+ pathname: S/SW/SWALTERS/SOAP-WSDL-v3.002.tar.gz
+ provides:
+ MyElements::CountCookies undef
+ MyElements::CountCookiesResponse undef
+ MyElements::GenerateBarCode undef
+ MyElements::GenerateBarCodeResponse undef
+ MyElements::GetCitiesByCountry undef
+ MyElements::GetCitiesByCountryResponse undef
+ MyElements::GetFortuneCookie undef
+ MyElements::GetFortuneCookieResponse undef
+ MyElements::GetSpecificCookie undef
+ MyElements::GetSpecificCookieResponse undef
+ MyElements::GetWeather undef
+ MyElements::GetWeatherResponse undef
+ MyElements::ListPerson undef
+ MyElements::ListPersonResponse undef
+ MyElements::int undef
+ MyElements::readNodeCount undef
+ MyElements::readNodeCountResponse undef
+ MyElements::sayHello undef
+ MyElements::sayHelloResponse undef
+ MyElements::string undef
+ MyInterfaces::BarCode::BarCodeSoap undef
+ MyInterfaces::FullerData_x0020_Fortune_x0020_Cookie::FullerData_x0020_Fortune_x0020_CookieSoap undef
+ MyInterfaces::GlobalWeather::GlobalWeatherSoap undef
+ MyInterfaces::HelloWorld::HelloWorldSoap undef
+ MyInterfaces::TestService::TestPort undef
+ MyServer::HelloWorld::HelloWorldSoap undef
+ MyServer::TestService::TestPort undef
+ MyTypemaps::BarCode undef
+ MyTypemaps::FullerData_x0020_Fortune_x0020_Cookie undef
+ MyTypemaps::GlobalWeather undef
+ MyTypemaps::HelloWorld undef
+ MyTypemaps::TestService undef
+ MyTypes::Address undef
+ MyTypes::ArrayOfContract undef
+ MyTypes::ArrayOfPerson undef
+ MyTypes::BarCodeData undef
+ MyTypes::BarcodeOption undef
+ MyTypes::BarcodeType undef
+ MyTypes::CheckSumMethod undef
+ MyTypes::Contract undef
+ MyTypes::ImageFormats undef
+ MyTypes::Person undef
+ MyTypes::PersonID undef
+ MyTypes::PhoneNumber undef
+ MyTypes::ShowTextPosition undef
+ MyTypes::test2 undef
+ MyTypes::testExtended undef
+ SOAP::WSDL undef
+ SOAP::WSDL::Base undef
+ SOAP::WSDL::Binding undef
+ SOAP::WSDL::Client undef
+ SOAP::WSDL::Client::Base undef
+ SOAP::WSDL::Definitions undef
+ SOAP::WSDL::Deserializer::Hash undef
+ SOAP::WSDL::Deserializer::SOM undef
+ SOAP::WSDL::Deserializer::XSD undef
+ SOAP::WSDL::Expat::Base undef
+ SOAP::WSDL::Expat::Message2Hash undef
+ SOAP::WSDL::Expat::MessageParser undef
+ SOAP::WSDL::Expat::MessageStreamParser undef
+ SOAP::WSDL::Expat::WSDLParser undef
+ SOAP::WSDL::Factory::Deserializer undef
+ SOAP::WSDL::Factory::Generator undef
+ SOAP::WSDL::Factory::Serializer undef
+ SOAP::WSDL::Factory::Transport undef
+ SOAP::WSDL::Generator::Iterator::WSDL11 undef
+ SOAP::WSDL::Generator::PrefixResolver undef
+ SOAP::WSDL::Generator::Template undef
+ SOAP::WSDL::Generator::Template::Plugin::XSD undef
+ SOAP::WSDL::Generator::Template::XSD undef
+ SOAP::WSDL::Generator::Visitor undef
+ SOAP::WSDL::Generator::Visitor::Typemap undef
+ SOAP::WSDL::Message undef
+ SOAP::WSDL::OpMessage undef
+ SOAP::WSDL::Operation undef
+ SOAP::WSDL::Part undef
+ SOAP::WSDL::Port undef
+ SOAP::WSDL::PortType undef
+ SOAP::WSDL::SOAP::Address undef
+ SOAP::WSDL::SOAP::Body undef
+ SOAP::WSDL::SOAP::Header undef
+ SOAP::WSDL::SOAP::HeaderFault undef
+ SOAP::WSDL::SOAP::Operation undef
+ SOAP::WSDL::SOAP::Typelib::Fault undef
+ SOAP::WSDL::SOAP::Typelib::Fault11 undef
+ SOAP::WSDL::SOAP::Typelib::Fault11Detail undef
+ SOAP::WSDL::Serializer::XSD undef
+ SOAP::WSDL::Server undef
+ SOAP::WSDL::Server::CGI undef
+ SOAP::WSDL::Server::Mod_Perl2 undef
+ SOAP::WSDL::Server::Simple undef
+ SOAP::WSDL::Service undef
+ SOAP::WSDL::Transport::HTTP undef
+ SOAP::WSDL::Transport::Loopback undef
+ SOAP::WSDL::Transport::Test undef
+ SOAP::WSDL::TypeLookup undef
+ SOAP::WSDL::Types undef
+ SOAP::WSDL::XSD::Annotation undef
+ SOAP::WSDL::XSD::Attribute undef
+ SOAP::WSDL::XSD::AttributeGroup undef
+ SOAP::WSDL::XSD::Builtin undef
+ SOAP::WSDL::XSD::ComplexType undef
+ SOAP::WSDL::XSD::Element undef
+ SOAP::WSDL::XSD::Enumeration undef
+ SOAP::WSDL::XSD::FractionDigits undef
+ SOAP::WSDL::XSD::Group undef
+ SOAP::WSDL::XSD::Length undef
+ SOAP::WSDL::XSD::MaxExclusive undef
+ SOAP::WSDL::XSD::MaxInclusive undef
+ SOAP::WSDL::XSD::MaxLength undef
+ SOAP::WSDL::XSD::MinExclusive undef
+ SOAP::WSDL::XSD::MinInclusive undef
+ SOAP::WSDL::XSD::MinLength undef
+ SOAP::WSDL::XSD::Pattern undef
+ SOAP::WSDL::XSD::Schema undef
+ SOAP::WSDL::XSD::Schema::Builtin undef
+ SOAP::WSDL::XSD::SimpleType undef
+ SOAP::WSDL::XSD::TotalDigits undef
+ SOAP::WSDL::XSD::Typelib::Attribute undef
+ SOAP::WSDL::XSD::Typelib::AttributeSet undef
+ SOAP::WSDL::XSD::Typelib::Builtin undef
SOAP::WSDL::XSD::Typelib::Builtin::ENTITY undef
SOAP::WSDL::XSD::Typelib::Builtin::ID undef
SOAP::WSDL::XSD::Typelib::Builtin::IDREF undef
@@ -5045,10 +5051,10 @@ DISTRIBUTIONS
SOAP::WSDL::XSD::Typelib::Builtin::Name undef
SOAP::WSDL::XSD::Typelib::Builtin::QName undef
SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType undef
- SOAP::WSDL::XSD::Typelib::Builtin::anyType 2.000010
+ SOAP::WSDL::XSD::Typelib::Builtin::anyType undef
SOAP::WSDL::XSD::Typelib::Builtin::anyURI undef
SOAP::WSDL::XSD::Typelib::Builtin::base64Binary undef
- SOAP::WSDL::XSD::Typelib::Builtin::boolean 2.000010
+ SOAP::WSDL::XSD::Typelib::Builtin::boolean undef
SOAP::WSDL::XSD::Typelib::Builtin::byte undef
SOAP::WSDL::XSD::Typelib::Builtin::date undef
SOAP::WSDL::XSD::Typelib::Builtin::dateTime undef
@@ -5074,22 +5080,25 @@ DISTRIBUTIONS
SOAP::WSDL::XSD::Typelib::Builtin::positiveInteger undef
SOAP::WSDL::XSD::Typelib::Builtin::short undef
SOAP::WSDL::XSD::Typelib::Builtin::string undef
- SOAP::WSDL::XSD::Typelib::Builtin::time 2.000010
+ SOAP::WSDL::XSD::Typelib::Builtin::time undef
SOAP::WSDL::XSD::Typelib::Builtin::token undef
SOAP::WSDL::XSD::Typelib::Builtin::unsignedByte undef
SOAP::WSDL::XSD::Typelib::Builtin::unsignedInt undef
SOAP::WSDL::XSD::Typelib::Builtin::unsignedLong undef
SOAP::WSDL::XSD::Typelib::Builtin::unsignedShort undef
- SOAP::WSDL::XSD::Typelib::ComplexType 2.000010
- SOAP::WSDL::XSD::Typelib::Element 2.000010
- SOAP::WSDL::XSD::Typelib::SimpleType 2.000010
- SOAP::WSDL::XSD::WhiteSpace 2.000010
- requirements:
- Class::Std::Fast v0.0.5
+ SOAP::WSDL::XSD::Typelib::ComplexType undef
+ SOAP::WSDL::XSD::Typelib::Element undef
+ SOAP::WSDL::XSD::Typelib::SimpleType undef
+ SOAP::WSDL::XSD::Typelib::SimpleType::restriction undef
+ SOAP::WSDL::XSD::WhiteSpace undef
+ requirements:
+ Class::Load 0.2
+ Class::Std::Fast 0.000005
Cwd 0
Data::Dumper 0
Date::Format 0
Date::Parse 0
+ ExtUtils::MakeMaker 0
File::Basename 0
File::Path 0
File::Spec 0
@@ -5103,7 +5112,7 @@ DISTRIBUTIONS
Test::More 0
URI 0
XML::Parser::Expat 0
- perl v5.8.0
+ perl 5.008
SQL-Abstract-1.73
pathname: F/FR/FREW/SQL-Abstract-1.73.tar.gz
provides:
@@ -5273,13 +5282,6 @@ DISTRIBUTIONS
requirements:
ExtUtils::MakeMaker 0
Test::More 0.88
- Sub-Identify-0.04
- pathname: R/RG/RGARCIA/Sub-Identify-0.04.tar.gz
- provides:
- Sub::Identify 0.04
- requirements:
- ExtUtils::MakeMaker 0
- Test::More 0
Sub-Install-0.926
pathname: R/RJ/RJBS/Sub-Install-0.926.tar.gz
provides:
@@ -5411,11 +5413,10 @@ DISTRIBUTIONS
File::Spec 0.8
File::Temp 0.12
Scalar::Util 0
- TermReadKey-2.31
- pathname: J/JS/JSTOWE/TermReadKey-2.31.tar.gz
+ TermReadKey-2.32
+ pathname: J/JS/JSTOWE/TermReadKey-2.32.tar.gz
provides:
- Configure undef
- Term::ReadKey 2.31
+ Term::ReadKey 2.32
requirements:
ExtUtils::MakeMaker 0
Test-Base-0.60
@@ -5521,7 +5522,6 @@ DISTRIBUTIONS
provides:
Test::Exception 0.31
requirements:
- Module::Build 0.36
Sub::Uplevel 0.18
Test::Builder 0.7
Test::Builder::Tester 1.07
@@ -5543,6 +5543,59 @@ DISTRIBUTIONS
overload 0
strict 0
warnings 0
+ Test-Harness-3.32
+ pathname: L/LE/LEONT/Test-Harness-3.32.tar.gz
+ provides:
+ App::Prove 3.32
+ App::Prove::State 3.32
+ App::Prove::State::Result 3.32
+ App::Prove::State::Result::Test 3.32
+ TAP::Base 3.32
+ TAP::Formatter::Base 3.32
+ TAP::Formatter::Color 3.32
+ TAP::Formatter::Console 3.32
+ TAP::Formatter::Console::ParallelSession 3.32
+ TAP::Formatter::Console::Session 3.32
+ TAP::Formatter::File 3.32
+ TAP::Formatter::File::Session 3.32
+ TAP::Formatter::Session 3.32
+ TAP::Harness 3.32
+ TAP::Harness::Env 3.32
+ TAP::Object 3.32
+ TAP::Parser 3.32
+ TAP::Parser::Aggregator 3.32
+ TAP::Parser::Grammar 3.32
+ TAP::Parser::Iterator 3.32
+ TAP::Parser::Iterator::Array 3.32
+ TAP::Parser::Iterator::Process 3.32
+ TAP::Parser::Iterator::Stream 3.32
+ TAP::Parser::IteratorFactory 3.32
+ TAP::Parser::Multiplexer 3.32
+ TAP::Parser::Result 3.32
+ TAP::Parser::Result::Bailout 3.32
+ TAP::Parser::Result::Comment 3.32
+ TAP::Parser::Result::Plan 3.32
+ TAP::Parser::Result::Pragma 3.32
+ TAP::Parser::Result::Test 3.32
+ TAP::Parser::Result::Unknown 3.32
+ TAP::Parser::Result::Version 3.32
+ TAP::Parser::Result::YAML 3.32
+ TAP::Parser::ResultFactory 3.32
+ TAP::Parser::Scheduler 3.32
+ TAP::Parser::Scheduler::Job 3.32
+ TAP::Parser::Scheduler::Spinner 3.32
+ TAP::Parser::Source 3.32
+ TAP::Parser::SourceHandler 3.32
+ TAP::Parser::SourceHandler::Executable 3.32
+ TAP::Parser::SourceHandler::File 3.32
+ TAP::Parser::SourceHandler::Handle 3.32
+ TAP::Parser::SourceHandler::Perl 3.32
+ TAP::Parser::SourceHandler::RawTAP 3.32
+ TAP::Parser::YAMLish::Reader 3.32
+ TAP::Parser::YAMLish::Writer 3.32
+ Test::Harness 3.32
+ requirements:
+ ExtUtils::MakeMaker 0
Test-LongString-0.15
pathname: R/RG/RGARCIA/Test-LongString-0.15.tar.gz
provides:
@@ -5612,21 +5665,6 @@ DISTRIBUTIONS
Test::Requires 0
Time::HiRes 0
perl 5.008
- Test-Simple-0.98
- pathname: M/MS/MSCHWERN/Test-Simple-0.98.tar.gz
- provides:
- Test::Builder 0.98
- Test::Builder::IO::Scalar 2.110
- Test::Builder::Module 0.98
- Test::Builder::Tester 1.22
- Test::Builder::Tester::Color 1.22
- Test::Builder::Tester::Tie 1.22
- Test::More 0.98
- Test::Simple 0.98
- requirements:
- ExtUtils::MakeMaker 0
- Test::Harness 2.03
- perl 5.006
Test-TCP-1.21
pathname: T/TO/TOKUHIROM/Test-TCP-1.21.tar.gz
provides:
@@ -6461,8 +6499,6 @@ DISTRIBUTIONS
B::Hooks::EndOfScope 0.12
ExtUtils::CBuilder 0.27
Package::Stash 0.23
- Sub::Identify 0.04
- Sub::Name 0.04
Test::More 0.88
strictures-1.004004
pathname: E/ET/ETHER/strictures-1.004004.tar.gz
@@ -6470,17 +6506,6 @@ DISTRIBUTIONS
strictures 1.004004
requirements:
ExtUtils::MakeMaker 0
- version-0.9902
- pathname: J/JP/JPEACOCK/version-0.9902.tar.gz
- provides:
- charstar 0.9902
- version 0.9902
- version::vpp 0.9902
- version::vxs 0.9902
- requirements:
- ExtUtils::MakeMaker 0
- File::Temp 0.13
- Test::More 0.45
warnings-illegalproto-0.001001
pathname: F/FR/FREW/warnings-illegalproto-0.001001.tar.gz
provides:
diff --git a/perllib/Open311/PopulateServiceList.pm b/perllib/Open311/PopulateServiceList.pm
index d1a4d607f..a838d0fdd 100644
--- a/perllib/Open311/PopulateServiceList.pm
+++ b/perllib/Open311/PopulateServiceList.pm
@@ -46,6 +46,7 @@ sub process_body {
my $areas = join( ",", keys %{$self->_current_body->areas} );
warn "Body $id for areas $areas - $mapit_url/areas/$areas.html - did not return a service list\n"
if $self->verbose >= 1;
+ warn $open311->error;
return;
}
$self->process_services( $list );
diff --git a/t/open311/endpoint/mysociety.t b/t/open311/endpoint/mysociety.t
index ea4f72820..c63e03e43 100644
--- a/t/open311/endpoint/mysociety.t
+++ b/t/open311/endpoint/mysociety.t
@@ -64,36 +64,36 @@ CONTENT
my $update_0_xml = <<CONTENT;
<?xml version="1.0" encoding="utf-8"?>
<service_request_updates>
- <request_updates>
+ <request_update>
<description>Fixed</description>
<media_url></media_url>
<service_request_id>0</service_request_id>
<status>closed</status>
<update_id>1</update_id>
<updated_datetime>2014-01-01T13:00:00Z</updated_datetime>
- </request_updates>
+ </request_update>
</service_request_updates>
CONTENT
my $updates_xml = <<CONTENT;
<?xml version="1.0" encoding="utf-8"?>
<service_request_updates>
- <request_updates>
+ <request_update>
<description>Fixed</description>
<media_url></media_url>
<service_request_id>0</service_request_id>
<status>closed</status>
<update_id>1</update_id>
<updated_datetime>2014-01-01T13:00:00Z</updated_datetime>
- </request_updates>
- <request_updates>
+ </request_update>
+ <request_update>
<description>Have investigated. Looks tricky!</description>
<media_url></media_url>
<service_request_id>1</service_request_id>
<status>open</status>
<update_id>2</update_id>
<updated_datetime>2014-03-01T13:00:00Z</updated_datetime>
- </request_updates>
+ </request_update>
</service_request_updates>
CONTENT
diff --git a/t/open311/endpoint/warwick.t b/t/open311/endpoint/warwick.t
index 7021a37d7..8d0b7284b 100644
--- a/t/open311/endpoint/warwick.t
+++ b/t/open311/endpoint/warwick.t
@@ -7,7 +7,11 @@ use Test::MockTime ':all';
use Data::Dumper;
use JSON;
+use FixMyStreet::App;
use t::open311::endpoint::Endpoint_Warwick;
+use LWP::Protocol::PSGI;
+use Open311::PopulateServiceList;
+use Open311::GetServiceRequestUpdates;
my $endpoint = t::open311::endpoint::Endpoint_Warwick->new;
my $json = JSON->new;
@@ -257,14 +261,14 @@ subtest 'updates' => sub {
my $expected = <<XML;
<?xml version="1.0" encoding="utf-8"?>
<service_request_updates>
- <request_updates>
+ <request_update>
<description>Closed the ticket</description>
<media_url></media_url>
<service_request_id>1001</service_request_id>
<status>closed</status>
<update_id>999</update_id>
<updated_datetime>2014-07-23T11:07:00+01:00</updated_datetime>
- </request_updates>
+ </request_update>
</service_request_updates>
XML
@@ -287,5 +291,137 @@ SQL
is_string $t::open311::endpoint::Endpoint_Warwick::UPDATES_SQL, $expected_sql, 'SQL as expected';
};
+subtest "End to end" => sub {
+
+ # We create and instance of the endpoint as a PSGI app
+ # And then bind it to the dummy URL. This mocks that whole hostname, so that FMS's
+ # calls via Open311.pm are rerouted to our PSGI app.
+ # (This saves us all the faff of having to launch and manage a new server process
+ # for this test)
+
+ my $endpoint_psgi = t::open311::endpoint::Endpoint_Warwick->run_if_script;
+
+ my $ENDPOINT = 'open311.warwickshire.gov.uk';
+ LWP::Protocol::PSGI->register($endpoint_psgi, host => $ENDPOINT);
+
+ my $WARWICKSHIRE_MAPIT_ID = 2243;
+
+ my $db = FixMyStreet::App->model('DB')->schema;
+
+ $db->txn_begin;
+
+ my $body = FixMyStreet::App->model('DB::Body')->find_or_create( {
+ id => $WARWICKSHIRE_MAPIT_ID,
+ name => 'Warwickshire County Council',
+ });
+
+ my $user = FixMyStreet::App->model('DB::User')
+ ->find_or_create( { email => 'test@example.com', name => 'Test User' } );
+
+ $body->update({
+ jurisdiction => 'wcc',
+ endpoint => "http://$ENDPOINT",
+ api_key => 'SEEKRIT',
+ send_method => 'Open311',
+ send_comments => 1,
+ comment_user_id => $user->id,
+ });
+
+ $body->body_areas->find_or_create({
+ area_id => $WARWICKSHIRE_MAPIT_ID
+ } );
+
+ subtest "Populate service list" => sub {
+ # as per bin/open311-populate-service-list
+
+ $body->contacts->delete;
+
+ is $body->contacts->count, 0, 'sanity check';
+
+ my $bodies = self_rs($body);
+
+ my $p = Open311::PopulateServiceList->new( bodies => $bodies, verbose => 0 );
+ $p->process_bodies;
+
+ is $body->contacts->count, 19, 'Categories imported from Open311';
+ };
+
+ set_fixed_time('2014-07-20T15:05:00Z');
+
+ my $problem = FixMyStreet::App->model('DB::Problem')->create({
+ postcode => 'WC1 1AA',
+ bodies_str => $WARWICKSHIRE_MAPIT_ID,
+ areas => ",$WARWICKSHIRE_MAPIT_ID,",
+ category => 'Pothole',
+ title => 'Testing',
+ detail => 'Testing Detail',
+ used_map => 1,
+ name => 'Joe Bloggs',
+ anonymous => 0,
+ state => 'confirmed',
+ confirmed => '2014-07-20 15:00:00',
+ lastupdate => '2014-07-20 15:00:00',
+ lang => 'en-gb',
+ service => '',
+ cobrand => 'fixmystreet', # e.g. UK
+ cobrand_data => '',
+ send_questionnaire => 0,
+ latitude => '52.2804',
+ longitude => '-1.5897',
+ user_id => $user->id,
+ });
+
+ subtest "Send report" => sub {
+ # as per bin/send-reports
+
+ FixMyStreet::override_config {
+ ALLOWED_COBRANDS => [ 'fixmystreet' ],
+ SEND_REPORTS_ON_STAGING => 1,
+ }, sub {
+ self_rs($problem)->send_reports;
+ };
+ $problem->discard_changes;
+
+ # Our test endpoint returns a hardcoded external ID.
+ ok $problem->whensent, 'whensent has been set';
+ is $problem->external_id, 1001, 'External ID set correctly'
+ or die;
+ };
+
+ subtest "Send update" => sub {
+ # as per bin/send-reports
+
+ $problem->update({ lastupdate => '2014-07-20 15:05:00' }); # override
+
+ set_fixed_time('2014-07-23T11:07:00Z');
+
+ is $problem->comments->count, 0, 'sanity check update count';
+ is $problem->state, 'confirmed', 'sanity check status';
+
+
+ my $updates = Open311::GetServiceRequestUpdates->new( verbose => 1 );
+ $updates->fetch;
+
+ $problem->discard_changes;
+ is $problem->comments->count, 1, 'comment has been added';
+
+
+ my $update = $problem->comments->single;
+ is $update->user_id, $user->id, 'update user correct';
+ is $update->state, 'confirmed', 'update itself is confirmed';
+
+ is $update->problem_state, 'fixed - council', 'update marked problem as closed';
+ is $problem->state, 'fixed - council', 'has been closed';
+ };
+
+ $db->txn_rollback;
+};
+
restore_time();
done_testing;
+
+sub self_rs {
+ my ($row) = @_;
+ # create a result-set with just this body (see also DBIx::Class::Helper::Row::SelfResultSet)
+ return $row->result_source->resultset->search( $row->ident_condition );
+}
diff --git a/t/open311/populate-service-list.t b/t/open311/populate-service-list.t
index 9fd18b607..d9d65945b 100644
--- a/t/open311/populate-service-list.t
+++ b/t/open311/populate-service-list.t
@@ -25,10 +25,12 @@ $body->body_areas->find_or_create({
area_id => 1
} );
+my $BROMLEY = 'Bromley Council';
my $bromley = FixMyStreet::App->model('DB::Body')->find_or_create( {
id => 2482,
- name => 'Bromley Council',
+ name => $BROMLEY,
} );
+$bromley->update({ name => $BROMLEY });
$bromley->body_areas->find_or_create({
area_id => 2482
} );