diff options
-rw-r--r-- | cpanfile | 2 | ||||
-rw-r--r-- | cpanfile.snapshot | 569 | ||||
-rw-r--r-- | perllib/Open311/PopulateServiceList.pm | 1 | ||||
-rw-r--r-- | t/open311/endpoint/mysociety.t | 12 | ||||
-rw-r--r-- | t/open311/endpoint/warwick.t | 140 | ||||
-rw-r--r-- | t/open311/populate-service-list.t | 4 |
6 files changed, 447 insertions, 281 deletions
@@ -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 } ); |