@@ -1,37 +1,77 @@
-Revision history for Test-Net-RabbitMQ
+0.13 2015-04-22
-0.10 Oct 11 2014
+* Make all delivery tags a Math::UInt64 object to match the latest
+ Net::AMQ::RabbitMQ changes (as of version 0.100000 of that library). (Ran
+ Eilam)
-0.09 Jun 30 2012
- * Add tx_select, tx_commit, and tx_rollback support. (bluefeet)
-0.08 Tue Feb 28, 2012
- * Make queues FIFO, not LIFO. (Thanks Ryan Olson!)
+0.12 2015-01-19
- * Support the tx_select, tx_commit, and tx_rollback methods.
+* Added the redelivered key to messages returned by recv(). This matches a
+ change in Net::AMQP::RabbitMQ 0.007002.
+* The consume() method now returns a consumer tag, either the one you pass or
+ an auto-generated tag.
+* Implemented a cancel() method.
+* Partially implemented exchange_delete() and queue_delete() methods. These
+ aren't very smart and will not throw errors when the real RabbitMQ would,
+ but the methods at least exist and delete any existing mock queue or
+ exchange.
+* Implement "passive => 1" option for queue_declare, primarily to make it
+ possible to get a queue's message count.
+* Calling queue_declare would wipe out the contents of the queue if it already
+ existed.
-0.07 Fri Feb 24, 2012
- * Rather than just return the body of the queued message, return all the
- metainformation that Net::RabbitMQ would have returned. (Thanks Ryan Olson!)
-0.06 Fri Jul 2, 2010
- * Mention the name of the queue get when is called and the queue doesn't exist.
+0.10 2014-10-11
-0.05 Thu Jul 1, 2010
- * Add debug attribute for printing out publishes
+* Message properties now default to an empty hash if none are specified. This
+ matches the behavior of Net::AMQP::RabbitMQ. (Dave Rolsky)
-0.04 Fri Jun 4, 2010
- * Default exchange to amq.direct
- * Add support for wildcard bindings (# and *)
-0.03 Tue May 25, 2010
- * Fix bug in get implementation
+0.09 2012-06-30
-0.02 Tue May 25, 2010
- * Implement get method.
- * POD fixes
-
+* Add tx_select, tx_commit, and tx_rollback support. (bluefeet)
+
+
+0.08 2012-02-28
+
+* Make queues FIFO, not LIFO. (Thanks Ryan Olson!)
+* Support the tx_select, tx_commit, and tx_rollback methods.
+
+
+0.07 2012-02-24
+
+* Rather than just return the body of the queued message, return all the
+ metainformation that Net::RabbitMQ would have returned. (Thanks Ryan Olson!)
+
+
+0.06 2010-07-02
+
+* Mention the name of the queue get when is called and the queue doesn't exist.
+
+
+0.05 2010-07-01
-0.01 Date/time
- First version, released on an unsuspecting world.
+* Add debug attribute for printing out publishes
+
+
+0.04 2010-06-04
+
+* Default exchange to amq.direct
+* Add support for wildcard bindings (# and *)
+
+
+0.03 2010-05-25
+
+* Fix bug in get implementation
+
+
+0.02 2010-05-25
+
+* Implement get method.
+* POD fixes
+
+
+0.01 2010-03-05
+* First version, released on an unsuspecting world.
@@ -0,0 +1,43 @@
+This is the Perl distribution Test-Net-RabbitMQ.
+
+Installing Test-Net-RabbitMQ is straightforward.
+
+## Installation with cpanm
+
+If you have cpanm, you only need one line:
+
+ % cpanm Test::Net::RabbitMQ
+
+If you are installing into a system-wide directory, you may need to pass the
+"-S" flag to cpanm, which uses sudo to install the module:
+
+ % cpanm -S Test::Net::RabbitMQ
+
+## Installing with the CPAN shell
+
+Alternatively, if your CPAN shell is set up, you should just be able to do:
+
+ % cpan Test::Net::RabbitMQ
+
+## Manual installation
+
+As a last resort, you can manually install it. Download the tarball, untar it,
+then build it:
+
+ % perl Makefile.PL
+ % make && make test
+
+Then install it:
+
+ % make install
+
+If you are installing into a system-wide directory, you may need to run:
+
+ % sudo make install
+
+## Documentation
+
+Test-Net-RabbitMQ documentation is available as POD.
+You can run perldoc from a shell to read the documentation:
+
+ % perldoc Test::Net::RabbitMQ
@@ -1,4 +1,4 @@
-This software is copyright (c) 2014 by Cory G Watson.
+This software is copyright (c) 2015 by Cory G Watson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@ b) the "Artistic License"
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2014 by Cory G Watson.
+This software is Copyright (c) 2015 by Cory G Watson.
This is free software, licensed under:
@@ -22,7 +22,7 @@ This is free software, licensed under:
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -272,7 +272,7 @@ That's all there is to it!
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2014 by Cory G Watson.
+This software is Copyright (c) 2015 by Cory G Watson.
This is free software, licensed under:
@@ -1,21 +1,35 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.012.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.035.
Changes
+INSTALL
LICENSE
MANIFEST
META.json
META.yml
Makefile.PL
-README
-README.mkdn
+README.md
+cpanfile
+dist.ini
ignore.txt
lib/Test/Net/RabbitMQ.pm
+t/00-compile.t
+t/00-report-prereqs.dd
+t/00-report-prereqs.t
t/ack.t
+t/author-eol.t
+t/author-no-tabs.t
+t/author-pod-spell.t
t/channels.t
t/connections.t
t/fifo.t
t/pubsub.t
+t/queue.t
+t/release-cpan-changes.t
+t/release-pod-coverage.t
+t/release-pod-no404s.t
t/release-pod-syntax.t
-t/release-synopsis.t
+t/release-portability.t
+t/release-test-version.t
t/simple.t
t/tx.t
t/wildcard.t
+weaver.ini
@@ -4,7 +4,7 @@
"Cory G Watson <gphat@cpan.org>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 5.012, CPAN::Meta::Converter version 2.133380",
+ "generated_by" : "Dist::Zilla version 5.035, CPAN::Meta::Converter version 2.143240",
"license" : [
"perl_5"
],
@@ -16,40 +16,720 @@
"prereqs" : {
"configure" : {
"requires" : {
- "ExtUtils::MakeMaker" : "6.30"
+ "ExtUtils::MakeMaker" : "0"
}
},
"develop" : {
"requires" : {
- "Test::Pod" : "1.41"
+ "Perl::Critic" : "1.123",
+ "Perl::Tidy" : "20140711",
+ "Pod::Coverage::TrustPod" : "0",
+ "Test::CPAN::Changes" : "0.19",
+ "Test::EOL" : "0",
+ "Test::More" : "0.88",
+ "Test::NoTabs" : "0",
+ "Test::Pod" : "1.41",
+ "Test::Pod::Coverage" : "1.08",
+ "Test::Spelling" : "0.12",
+ "Test::Version" : "1"
}
},
"runtime" : {
"requires" : {
+ "Math::Int64" : "0.34",
"Moose" : "0",
"strict" : "0",
"warnings" : "0"
}
},
"test" : {
+ "recommends" : {
+ "CPAN::Meta" : "2.120900"
+ },
"requires" : {
+ "ExtUtils::MakeMaker" : "0",
+ "File::Spec" : "0",
+ "IO::Handle" : "0",
+ "IPC::Open3" : "0",
"Test::Exception" : "0",
- "Test::More" : "0"
+ "Test::More" : "0.96",
+ "perl" : "5.006"
}
}
},
+ "provides" : {
+ "Test::Net::RabbitMQ" : {
+ "file" : "lib/Test/Net/RabbitMQ.pm",
+ "version" : "0.13"
+ }
+ },
"release_status" : "stable",
"resources" : {
"bugtracker" : {
- "web" : "https://github.com/gphat/test-net-rabbitmq/issues"
+ "mailto" : "bug-test-net-rabbitmq@rt.cpan.org",
+ "web" : "http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Net-RabbitMQ"
},
- "homepage" : "https://github.com/gphat/test-net-rabbitmq",
+ "homepage" : "http://metacpan.org/release/Test-Net-RabbitMQ",
"repository" : {
"type" : "git",
- "url" : "https://github.com/gphat/test-net-rabbitmq.git",
+ "url" : "git://github.com/gphat/test-net-rabbitmq.git",
"web" : "https://github.com/gphat/test-net-rabbitmq"
}
},
- "version" : "0.10"
+ "version" : "0.13",
+ "x_Dist_Zilla" : {
+ "perl" : {
+ "version" : "5.016003"
+ },
+ "plugins" : [
+ {
+ "class" : "Dist::Zilla::Plugin::MakeMaker",
+ "config" : {
+ "Dist::Zilla::Role::TestRunner" : {
+ "default_jobs" : 1
+ }
+ },
+ "name" : "@DROLSKY/MakeMaker",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Authority",
+ "name" : "@DROLSKY/Authority",
+ "version" : "1.009"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::AutoPrereqs",
+ "name" : "@DROLSKY/AutoPrereqs",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::CopyFilesFromBuild",
+ "name" : "@DROLSKY/CopyFilesFromBuild",
+ "version" : "0.150250"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::GatherDir",
+ "config" : {
+ "Dist::Zilla::Plugin::GatherDir" : {
+ "exclude_filename" : [
+ "README.md",
+ "cpanfile",
+ "Makefile.PL",
+ "LICENSE",
+ "Build.PL"
+ ],
+ "exclude_match" : [],
+ "follow_symlinks" : "0",
+ "include_dotfiles" : "0",
+ "prefix" : "",
+ "prune_directory" : [],
+ "root" : "."
+ },
+ "Dist::Zilla::Plugin::Git::GatherDir" : {
+ "include_untracked" : "0"
+ }
+ },
+ "name" : "@DROLSKY/Git::GatherDir",
+ "version" : "2.033"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::GitHub::Meta",
+ "name" : "@DROLSKY/GitHub::Meta",
+ "version" : "0.40"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::GitHub::Update",
+ "name" : "@DROLSKY/GitHub::Update",
+ "version" : "0.40"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MetaResources",
+ "name" : "@DROLSKY/MetaResources",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MetaProvides::Package",
+ "config" : {
+ "Dist::Zilla::Plugin::MetaProvides::Package" : {
+ "finder_objects" : [
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
+ "version" : "5.035"
+ }
+ ]
+ },
+ "Dist::Zilla::Role::MetaProvider::Provider" : {
+ "inherit_missing" : "1",
+ "inherit_version" : "1",
+ "meta_noindex" : "1"
+ }
+ },
+ "name" : "@DROLSKY/MetaProvides::Package",
+ "version" : "2.003001"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::NextRelease",
+ "name" : "@DROLSKY/NextRelease",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Prereqs",
+ "config" : {
+ "Dist::Zilla::Plugin::Prereqs" : {
+ "phase" : "test",
+ "type" : "requires"
+ }
+ },
+ "name" : "@DROLSKY/Test::More with subtest()",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Prereqs",
+ "config" : {
+ "Dist::Zilla::Plugin::Prereqs" : {
+ "phase" : "develop",
+ "type" : "requires"
+ }
+ },
+ "name" : "@DROLSKY/Modules for use with tidyall",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::PromptIfStale",
+ "config" : {
+ "Dist::Zilla::Plugin::PromptIfStale" : {
+ "check_all_plugins" : "1",
+ "check_all_prereqs" : "1",
+ "modules" : [],
+ "phase" : "release",
+ "skip" : [
+ "Dist::Zilla::Plugin::DROLSKY::Contributors",
+ "Dist::Zilla::Plugin::DROLSKY::License",
+ "Dist::Zilla::Plugin::DROLSKY::TidyAll"
+ ]
+ }
+ },
+ "name" : "@DROLSKY/PromptIfStale",
+ "version" : "0.041"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
+ "name" : "@DROLSKY/README.md in build",
+ "version" : "0.150250"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
+ "name" : "@DROLSKY/README.md in root",
+ "version" : "0.150250"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable",
+ "name" : "@DROLSKY/Test::Pod::Coverage::Configurable",
+ "version" : "0.05"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::PodSpelling",
+ "name" : "@DROLSKY/Test::PodSpelling",
+ "version" : "2.006008"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs",
+ "name" : "@DROLSKY/Test::ReportPrereqs",
+ "version" : "0.021"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::Version",
+ "name" : "@DROLSKY/Test::Version",
+ "version" : "0.003001"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ManifestSkip",
+ "name" : "@DROLSKY/ManifestSkip",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MetaYAML",
+ "name" : "@DROLSKY/MetaYAML",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::License",
+ "name" : "@DROLSKY/License",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ExtraTests",
+ "name" : "@DROLSKY/ExtraTests",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ExecDir",
+ "name" : "@DROLSKY/ExecDir",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ShareDir",
+ "name" : "@DROLSKY/ShareDir",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Manifest",
+ "name" : "@DROLSKY/Manifest",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::CheckVersionIncrement",
+ "name" : "@DROLSKY/CheckVersionIncrement",
+ "version" : "0.121750"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::TestRelease",
+ "name" : "@DROLSKY/TestRelease",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ConfirmRelease",
+ "name" : "@DROLSKY/ConfirmRelease",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::UploadToCPAN",
+ "name" : "@DROLSKY/UploadToCPAN",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed",
+ "name" : "@DROLSKY/CheckPrereqsIndexed",
+ "version" : "0.015"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::CPANFile",
+ "name" : "@DROLSKY/CPANFile",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::DROLSKY::Contributors",
+ "name" : "@DROLSKY/DROLSKY::Contributors",
+ "version" : "0.32"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::DROLSKY::License",
+ "name" : "@DROLSKY/DROLSKY::License",
+ "version" : "0.32"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch",
+ "config" : {
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/Git::CheckFor::CorrectBranch",
+ "version" : "0.013"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts",
+ "config" : {
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/Git::CheckFor::MergeConflicts",
+ "version" : "0.013"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Contributors",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Contributors" : {
+ "include_authors" : "0",
+ "include_releaser" : "1",
+ "order_by" : "name",
+ "paths" : []
+ }
+ },
+ "name" : "@DROLSKY/Git::Contributors",
+ "version" : "0.011"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::InstallGuide",
+ "name" : "@DROLSKY/InstallGuide",
+ "version" : "1.200006"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Meta::Contributors",
+ "name" : "@DROLSKY/Meta::Contributors",
+ "version" : "0.002"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MetaConfig",
+ "name" : "@DROLSKY/MetaConfig",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MetaJSON",
+ "name" : "@DROLSKY/MetaJSON",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::RewriteVersion",
+ "name" : "@DROLSKY/RewriteVersion",
+ "version" : "0.009"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::SurgicalPodWeaver",
+ "config" : {
+ "Dist::Zilla::Plugin::PodWeaver" : {
+ "finder" : [
+ ":InstallModules",
+ ":ExecFiles"
+ ],
+ "plugins" : [
+ {
+ "class" : "Pod::Weaver::Plugin::EnsurePod5",
+ "name" : "@CorePrep/EnsurePod5",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Plugin::H1Nester",
+ "name" : "@CorePrep/H1Nester",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Name",
+ "name" : "Name",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Version",
+ "name" : "Version",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Generic",
+ "name" : "SYNOPSIS",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Generic",
+ "name" : "DESCRIPTION",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Generic",
+ "name" : "OVERVIEW",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Region",
+ "name" : "prelude",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Leftovers",
+ "name" : "Leftovers",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Collect",
+ "name" : "ATTRIBUTES",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Collect",
+ "name" : "METHODS",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Region",
+ "name" : "postlude",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Authors",
+ "name" : "Authors",
+ "version" : "4.010"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Legal",
+ "name" : "Legal",
+ "version" : "4.010"
+ }
+ ]
+ }
+ },
+ "name" : "@DROLSKY/SurgicalPodWeaver",
+ "version" : "0.0023"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::PodSyntaxTests",
+ "name" : "@DROLSKY/PodSyntaxTests",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::CPAN::Changes",
+ "name" : "@DROLSKY/Test::CPAN::Changes",
+ "version" : "0.009"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::Compile",
+ "config" : {
+ "Dist::Zilla::Plugin::Test::Compile" : {
+ "bail_out_on_fail" : "0",
+ "fail_on_warning" : "author",
+ "fake_home" : "0",
+ "filename" : "t/00-compile.t",
+ "module_finder" : [
+ ":InstallModules"
+ ],
+ "needs_display" : "0",
+ "phase" : "test",
+ "script_finder" : [
+ ":ExecFiles"
+ ],
+ "skips" : []
+ }
+ },
+ "name" : "@DROLSKY/Test::Compile",
+ "version" : "2.052"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::EOL",
+ "config" : {
+ "Dist::Zilla::Plugin::Test::EOL" : {
+ "filename" : "xt/author/eol.t",
+ "finder" : [
+ ":InstallModules",
+ ":ExecFiles",
+ ":TestFiles"
+ ],
+ "trailing_whitespace" : "1"
+ }
+ },
+ "name" : "@DROLSKY/Test::EOL",
+ "version" : "0.17"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::NoTabs",
+ "config" : {
+ "Dist::Zilla::Plugin::Test::NoTabs" : {
+ "filename" : "xt/author/no-tabs.t",
+ "finder" : [
+ ":InstallModules",
+ ":ExecFiles",
+ ":TestFiles"
+ ]
+ }
+ },
+ "name" : "@DROLSKY/Test::NoTabs",
+ "version" : "0.13"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::Pod::No404s",
+ "name" : "@DROLSKY/Test::Pod::No404s",
+ "version" : "1.001"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::Portability",
+ "name" : "@DROLSKY/Test::Portability",
+ "version" : "2.000006"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Check",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Check" : {
+ "untracked_files" : "die"
+ },
+ "Dist::Zilla::Role::Git::DirtyFiles" : {
+ "allow_dirty" : [
+ "README.md",
+ "cpanfile",
+ "Makefile.PL",
+ "LICENSE",
+ "Build.PL",
+ "Changes",
+ "CONTRIBUTING.md"
+ ],
+ "allow_dirty_match" : [],
+ "changelog" : "Changes"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/Git::Check",
+ "version" : "2.033"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Commit",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Commit" : {
+ "add_files_in" : [],
+ "commit_msg" : "v%v%n%n%c",
+ "time_zone" : "local"
+ },
+ "Dist::Zilla::Role::Git::DirtyFiles" : {
+ "allow_dirty" : [
+ "README.md",
+ "cpanfile",
+ "Makefile.PL",
+ "LICENSE",
+ "Build.PL",
+ "Changes",
+ "CONTRIBUTING.md"
+ ],
+ "allow_dirty_match" : [],
+ "changelog" : "Changes"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/commit generated files",
+ "version" : "2.033"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Tag",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Tag" : {
+ "branch" : null,
+ "signed" : 0,
+ "tag" : "v0.13",
+ "tag_format" : "v%v",
+ "tag_message" : "v%v",
+ "time_zone" : "local"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/Git::Tag",
+ "version" : "2.033"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Push",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Push" : {
+ "push_to" : [
+ "origin"
+ ],
+ "remotes_must_exist" : 1
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/Git::Push",
+ "version" : "2.033"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::BumpVersionAfterRelease",
+ "name" : "@DROLSKY/BumpVersionAfterRelease",
+ "version" : "0.009"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Commit",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Commit" : {
+ "add_files_in" : [],
+ "commit_msg" : "Bump version after release",
+ "time_zone" : "local"
+ },
+ "Dist::Zilla::Role::Git::DirtyFiles" : {
+ "allow_dirty" : [
+ "dist.ini",
+ "Changes"
+ ],
+ "allow_dirty_match" : [
+ "(?^:.+)"
+ ],
+ "changelog" : "Changes"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/commit version bump",
+ "version" : "2.033"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Push",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Push" : {
+ "push_to" : [
+ "origin"
+ ],
+ "remotes_must_exist" : 1
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/push version bump",
+ "version" : "2.033"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":InstallModules",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":IncModules",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":TestFiles",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":ExecFiles",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":ShareFiles",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":MainModule",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":AllFiles",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":NoFiles",
+ "version" : "5.035"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
+ "version" : "5.035"
+ }
+ ],
+ "zilla" : {
+ "class" : "Dist::Zilla::Dist::Builder",
+ "config" : {
+ "is_trial" : ""
+ },
+ "version" : "5.035"
+ }
+ },
+ "x_authority" : "cpan:DROLSKY",
+ "x_contributors" : [
+ "Aran Deltac <bluefeet@gmail.com>",
+ "Cory G Watson <gphat@onemogin.com>",
+ "Cory Watson <gphat@Crankwizzah.local>",
+ "Dave Rolsky <autarch@urth.org>",
+ "Ran Eilam <reilam@maxmind.com>",
+ "Ryan Olson <rolson@rent.com>"
+ ]
}
@@ -3,23 +3,536 @@ abstract: 'A mock RabbitMQ implementation for use when testing.'
author:
- 'Cory G Watson <gphat@cpan.org>'
build_requires:
- Test::Exception: 0
- Test::More: 0
+ ExtUtils::MakeMaker: '0'
+ File::Spec: '0'
+ IO::Handle: '0'
+ IPC::Open3: '0'
+ Test::Exception: '0'
+ Test::More: '0.96'
+ perl: '5.006'
configure_requires:
- ExtUtils::MakeMaker: 6.30
+ ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.012, CPAN::Meta::Converter version 2.133380'
+generated_by: 'Dist::Zilla version 5.035, CPAN::Meta::Converter version 2.143240'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Test-Net-RabbitMQ
+provides:
+ Test::Net::RabbitMQ:
+ file: lib/Test/Net/RabbitMQ.pm
+ version: '0.13'
requires:
- Moose: 0
- strict: 0
- warnings: 0
+ Math::Int64: '0.34'
+ Moose: '0'
+ strict: '0'
+ warnings: '0'
resources:
- bugtracker: https://github.com/gphat/test-net-rabbitmq/issues
- homepage: https://github.com/gphat/test-net-rabbitmq
- repository: https://github.com/gphat/test-net-rabbitmq.git
-version: 0.10
+ bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Net-RabbitMQ
+ homepage: http://metacpan.org/release/Test-Net-RabbitMQ
+ repository: git://github.com/gphat/test-net-rabbitmq.git
+version: '0.13'
+x_Dist_Zilla:
+ perl:
+ version: '5.016003'
+ plugins:
+ -
+ class: Dist::Zilla::Plugin::MakeMaker
+ config:
+ Dist::Zilla::Role::TestRunner:
+ default_jobs: 1
+ name: '@DROLSKY/MakeMaker'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::Authority
+ name: '@DROLSKY/Authority'
+ version: '1.009'
+ -
+ class: Dist::Zilla::Plugin::AutoPrereqs
+ name: '@DROLSKY/AutoPrereqs'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::CopyFilesFromBuild
+ name: '@DROLSKY/CopyFilesFromBuild'
+ version: '0.150250'
+ -
+ class: Dist::Zilla::Plugin::Git::GatherDir
+ config:
+ Dist::Zilla::Plugin::GatherDir:
+ exclude_filename:
+ - README.md
+ - cpanfile
+ - Makefile.PL
+ - LICENSE
+ - Build.PL
+ exclude_match: []
+ follow_symlinks: '0'
+ include_dotfiles: '0'
+ prefix: ''
+ prune_directory: []
+ root: .
+ Dist::Zilla::Plugin::Git::GatherDir:
+ include_untracked: '0'
+ name: '@DROLSKY/Git::GatherDir'
+ version: '2.033'
+ -
+ class: Dist::Zilla::Plugin::GitHub::Meta
+ name: '@DROLSKY/GitHub::Meta'
+ version: '0.40'
+ -
+ class: Dist::Zilla::Plugin::GitHub::Update
+ name: '@DROLSKY/GitHub::Update'
+ version: '0.40'
+ -
+ class: Dist::Zilla::Plugin::MetaResources
+ name: '@DROLSKY/MetaResources'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::MetaProvides::Package
+ config:
+ Dist::Zilla::Plugin::MetaProvides::Package:
+ finder_objects:
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
+ version: '5.035'
+ Dist::Zilla::Role::MetaProvider::Provider:
+ inherit_missing: '1'
+ inherit_version: '1'
+ meta_noindex: '1'
+ name: '@DROLSKY/MetaProvides::Package'
+ version: '2.003001'
+ -
+ class: Dist::Zilla::Plugin::NextRelease
+ name: '@DROLSKY/NextRelease'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::Prereqs
+ config:
+ Dist::Zilla::Plugin::Prereqs:
+ phase: test
+ type: requires
+ name: '@DROLSKY/Test::More with subtest()'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::Prereqs
+ config:
+ Dist::Zilla::Plugin::Prereqs:
+ phase: develop
+ type: requires
+ name: '@DROLSKY/Modules for use with tidyall'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::PromptIfStale
+ config:
+ Dist::Zilla::Plugin::PromptIfStale:
+ check_all_plugins: '1'
+ check_all_prereqs: '1'
+ modules: []
+ phase: release
+ skip:
+ - Dist::Zilla::Plugin::DROLSKY::Contributors
+ - Dist::Zilla::Plugin::DROLSKY::License
+ - Dist::Zilla::Plugin::DROLSKY::TidyAll
+ name: '@DROLSKY/PromptIfStale'
+ version: '0.041'
+ -
+ class: Dist::Zilla::Plugin::ReadmeAnyFromPod
+ name: '@DROLSKY/README.md in build'
+ version: '0.150250'
+ -
+ class: Dist::Zilla::Plugin::ReadmeAnyFromPod
+ name: '@DROLSKY/README.md in root'
+ version: '0.150250'
+ -
+ class: Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable
+ name: '@DROLSKY/Test::Pod::Coverage::Configurable'
+ version: '0.05'
+ -
+ class: Dist::Zilla::Plugin::Test::PodSpelling
+ name: '@DROLSKY/Test::PodSpelling'
+ version: '2.006008'
+ -
+ class: Dist::Zilla::Plugin::Test::ReportPrereqs
+ name: '@DROLSKY/Test::ReportPrereqs'
+ version: '0.021'
+ -
+ class: Dist::Zilla::Plugin::Test::Version
+ name: '@DROLSKY/Test::Version'
+ version: '0.003001'
+ -
+ class: Dist::Zilla::Plugin::ManifestSkip
+ name: '@DROLSKY/ManifestSkip'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::MetaYAML
+ name: '@DROLSKY/MetaYAML'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::License
+ name: '@DROLSKY/License'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::ExtraTests
+ name: '@DROLSKY/ExtraTests'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::ExecDir
+ name: '@DROLSKY/ExecDir'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::ShareDir
+ name: '@DROLSKY/ShareDir'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::Manifest
+ name: '@DROLSKY/Manifest'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::CheckVersionIncrement
+ name: '@DROLSKY/CheckVersionIncrement'
+ version: '0.121750'
+ -
+ class: Dist::Zilla::Plugin::TestRelease
+ name: '@DROLSKY/TestRelease'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::ConfirmRelease
+ name: '@DROLSKY/ConfirmRelease'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::UploadToCPAN
+ name: '@DROLSKY/UploadToCPAN'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::CheckPrereqsIndexed
+ name: '@DROLSKY/CheckPrereqsIndexed'
+ version: '0.015'
+ -
+ class: Dist::Zilla::Plugin::CPANFile
+ name: '@DROLSKY/CPANFile'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::DROLSKY::Contributors
+ name: '@DROLSKY/DROLSKY::Contributors'
+ version: '0.32'
+ -
+ class: Dist::Zilla::Plugin::DROLSKY::License
+ name: '@DROLSKY/DROLSKY::License'
+ version: '0.32'
+ -
+ class: Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch
+ config:
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/Git::CheckFor::CorrectBranch'
+ version: '0.013'
+ -
+ class: Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts
+ config:
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/Git::CheckFor::MergeConflicts'
+ version: '0.013'
+ -
+ class: Dist::Zilla::Plugin::Git::Contributors
+ config:
+ Dist::Zilla::Plugin::Git::Contributors:
+ include_authors: '0'
+ include_releaser: '1'
+ order_by: name
+ paths: []
+ name: '@DROLSKY/Git::Contributors'
+ version: '0.011'
+ -
+ class: Dist::Zilla::Plugin::InstallGuide
+ name: '@DROLSKY/InstallGuide'
+ version: '1.200006'
+ -
+ class: Dist::Zilla::Plugin::Meta::Contributors
+ name: '@DROLSKY/Meta::Contributors'
+ version: '0.002'
+ -
+ class: Dist::Zilla::Plugin::MetaConfig
+ name: '@DROLSKY/MetaConfig'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::MetaJSON
+ name: '@DROLSKY/MetaJSON'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::RewriteVersion
+ name: '@DROLSKY/RewriteVersion'
+ version: '0.009'
+ -
+ class: Dist::Zilla::Plugin::SurgicalPodWeaver
+ config:
+ Dist::Zilla::Plugin::PodWeaver:
+ finder:
+ - ':InstallModules'
+ - ':ExecFiles'
+ plugins:
+ -
+ class: Pod::Weaver::Plugin::EnsurePod5
+ name: '@CorePrep/EnsurePod5'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Plugin::H1Nester
+ name: '@CorePrep/H1Nester'
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Name
+ name: Name
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Version
+ name: Version
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Generic
+ name: SYNOPSIS
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Generic
+ name: DESCRIPTION
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Generic
+ name: OVERVIEW
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Region
+ name: prelude
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Leftovers
+ name: Leftovers
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Collect
+ name: ATTRIBUTES
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Collect
+ name: METHODS
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Region
+ name: postlude
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Authors
+ name: Authors
+ version: '4.010'
+ -
+ class: Pod::Weaver::Section::Legal
+ name: Legal
+ version: '4.010'
+ name: '@DROLSKY/SurgicalPodWeaver'
+ version: '0.0023'
+ -
+ class: Dist::Zilla::Plugin::PodSyntaxTests
+ name: '@DROLSKY/PodSyntaxTests'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::Test::CPAN::Changes
+ name: '@DROLSKY/Test::CPAN::Changes'
+ version: '0.009'
+ -
+ class: Dist::Zilla::Plugin::Test::Compile
+ config:
+ Dist::Zilla::Plugin::Test::Compile:
+ bail_out_on_fail: '0'
+ fail_on_warning: author
+ fake_home: '0'
+ filename: t/00-compile.t
+ module_finder:
+ - ':InstallModules'
+ needs_display: '0'
+ phase: test
+ script_finder:
+ - ':ExecFiles'
+ skips: []
+ name: '@DROLSKY/Test::Compile'
+ version: '2.052'
+ -
+ class: Dist::Zilla::Plugin::Test::EOL
+ config:
+ Dist::Zilla::Plugin::Test::EOL:
+ filename: xt/author/eol.t
+ finder:
+ - ':InstallModules'
+ - ':ExecFiles'
+ - ':TestFiles'
+ trailing_whitespace: '1'
+ name: '@DROLSKY/Test::EOL'
+ version: '0.17'
+ -
+ class: Dist::Zilla::Plugin::Test::NoTabs
+ config:
+ Dist::Zilla::Plugin::Test::NoTabs:
+ filename: xt/author/no-tabs.t
+ finder:
+ - ':InstallModules'
+ - ':ExecFiles'
+ - ':TestFiles'
+ name: '@DROLSKY/Test::NoTabs'
+ version: '0.13'
+ -
+ class: Dist::Zilla::Plugin::Test::Pod::No404s
+ name: '@DROLSKY/Test::Pod::No404s'
+ version: '1.001'
+ -
+ class: Dist::Zilla::Plugin::Test::Portability
+ name: '@DROLSKY/Test::Portability'
+ version: '2.000006'
+ -
+ class: Dist::Zilla::Plugin::Git::Check
+ config:
+ Dist::Zilla::Plugin::Git::Check:
+ untracked_files: die
+ Dist::Zilla::Role::Git::DirtyFiles:
+ allow_dirty:
+ - README.md
+ - cpanfile
+ - Makefile.PL
+ - LICENSE
+ - Build.PL
+ - Changes
+ - CONTRIBUTING.md
+ allow_dirty_match: []
+ changelog: Changes
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/Git::Check'
+ version: '2.033'
+ -
+ class: Dist::Zilla::Plugin::Git::Commit
+ config:
+ Dist::Zilla::Plugin::Git::Commit:
+ add_files_in: []
+ commit_msg: v%v%n%n%c
+ time_zone: local
+ Dist::Zilla::Role::Git::DirtyFiles:
+ allow_dirty:
+ - README.md
+ - cpanfile
+ - Makefile.PL
+ - LICENSE
+ - Build.PL
+ - Changes
+ - CONTRIBUTING.md
+ allow_dirty_match: []
+ changelog: Changes
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/commit generated files'
+ version: '2.033'
+ -
+ class: Dist::Zilla::Plugin::Git::Tag
+ config:
+ Dist::Zilla::Plugin::Git::Tag:
+ branch: ~
+ signed: 0
+ tag: v0.13
+ tag_format: v%v
+ tag_message: v%v
+ time_zone: local
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/Git::Tag'
+ version: '2.033'
+ -
+ class: Dist::Zilla::Plugin::Git::Push
+ config:
+ Dist::Zilla::Plugin::Git::Push:
+ push_to:
+ - origin
+ remotes_must_exist: 1
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/Git::Push'
+ version: '2.033'
+ -
+ class: Dist::Zilla::Plugin::BumpVersionAfterRelease
+ name: '@DROLSKY/BumpVersionAfterRelease'
+ version: '0.009'
+ -
+ class: Dist::Zilla::Plugin::Git::Commit
+ config:
+ Dist::Zilla::Plugin::Git::Commit:
+ add_files_in: []
+ commit_msg: 'Bump version after release'
+ time_zone: local
+ Dist::Zilla::Role::Git::DirtyFiles:
+ allow_dirty:
+ - dist.ini
+ - Changes
+ allow_dirty_match:
+ - (?^:.+)
+ changelog: Changes
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/commit version bump'
+ version: '2.033'
+ -
+ class: Dist::Zilla::Plugin::Git::Push
+ config:
+ Dist::Zilla::Plugin::Git::Push:
+ push_to:
+ - origin
+ remotes_must_exist: 1
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/push version bump'
+ version: '2.033'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':InstallModules'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':IncModules'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':TestFiles'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':ExecFiles'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':ShareFiles'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':MainModule'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':AllFiles'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':NoFiles'
+ version: '5.035'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
+ version: '5.035'
+ zilla:
+ class: Dist::Zilla::Dist::Builder
+ config:
+ is_trial: ''
+ version: '5.035'
+x_authority: cpan:DROLSKY
+x_contributors:
+ - 'Aran Deltac <bluefeet@gmail.com>'
+ - 'Cory G Watson <gphat@onemogin.com>'
+ - 'Cory Watson <gphat@Crankwizzah.local>'
+ - 'Dave Rolsky <autarch@urth.org>'
+ - 'Ran Eilam <reilam@maxmind.com>'
+ - 'Ryan Olson <rolson@rent.com>'
@@ -1,35 +1,37 @@
-
-# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.012.
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.035.
use strict;
use warnings;
+use 5.006;
-
-use ExtUtils::MakeMaker 6.30;
-
-
+use ExtUtils::MakeMaker;
my %WriteMakefileArgs = (
"ABSTRACT" => "A mock RabbitMQ implementation for use when testing.",
"AUTHOR" => "Cory G Watson <gphat\@cpan.org>",
- "BUILD_REQUIRES" => {},
"CONFIGURE_REQUIRES" => {
- "ExtUtils::MakeMaker" => "6.30"
+ "ExtUtils::MakeMaker" => 0
},
"DISTNAME" => "Test-Net-RabbitMQ",
"EXE_FILES" => [],
"LICENSE" => "perl",
+ "MIN_PERL_VERSION" => "5.006",
"NAME" => "Test::Net::RabbitMQ",
"PREREQ_PM" => {
+ "Math::Int64" => "0.34",
"Moose" => 0,
"strict" => 0,
"warnings" => 0
},
"TEST_REQUIRES" => {
+ "ExtUtils::MakeMaker" => 0,
+ "File::Spec" => 0,
+ "IO::Handle" => 0,
+ "IPC::Open3" => 0,
"Test::Exception" => 0,
- "Test::More" => 0
+ "Test::More" => "0.96"
},
- "VERSION" => "0.10",
+ "VERSION" => "0.13",
"test" => {
"TESTS" => "t/*.t"
}
@@ -37,9 +39,14 @@ my %WriteMakefileArgs = (
my %FallbackPrereqs = (
+ "ExtUtils::MakeMaker" => 0,
+ "File::Spec" => 0,
+ "IO::Handle" => 0,
+ "IPC::Open3" => 0,
+ "Math::Int64" => "0.34",
"Moose" => 0,
"Test::Exception" => 0,
- "Test::More" => 0,
+ "Test::More" => "0.96",
"strict" => 0,
"warnings" => 0
);
@@ -55,6 +62,3 @@ delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
WriteMakefile(%WriteMakefileArgs);
-
-
-
@@ -1,15 +0,0 @@
-
-
-This archive contains the distribution Test-Net-RabbitMQ,
-version 0.10:
-
- A mock RabbitMQ implementation for use when testing.
-
-This software is copyright (c) 2014 by Cory G Watson.
-
-This is free software; you can redistribute it and/or modify it under
-the same terms as the Perl 5 programming language system itself.
-
-
-This README file was generated by Dist::Zilla::Plugin::Readme v5.012.
-
@@ -0,0 +1,192 @@
+NAME
+
+ Test::Net::RabbitMQ - A mock RabbitMQ implementation for use when
+ testing.
+
+VERSION
+
+ version 0.13
+
+SYNOPSIS
+
+ use Test::Net::RabbitMQ;
+
+ my $mq = Test::Net::RabbitMQ->new;
+
+ $mq->connect;
+
+ $mq->channel_open(1);
+
+ $mq->exchange_declare(1, 'order');
+ $mq->queue_declare(1, 'new-orders');
+
+ $mq->queue_bind(1, 'new-orders', 'order', 'order.new');
+
+ $mq->publish(1, 'order.new', 'hello!', { exchange => 'order' });
+
+ $mq->consume(1, 'new-orders');
+
+ my $msg = $mq->recv;
+
+ # Or
+
+ my $msg = $mq->get(1, 'order.new', {});
+
+DESCRIPTION
+
+ Test::Net::RabbitMQ is a terrible approximation of using the real
+ thing, but hopefully will allow you to test systems that use
+ Net::AMQP::RabbitMQ or Net::RabbitMQ without having to use an actual
+ RabbitMQ instance.
+
+ The general overview is that calls to publish pushes a message into one
+ or more queues (or none if there are no bindings) and calls to recv pop
+ them.
+
+CAVEATS
+
+ This module has all the features I've needed to successfully test our
+ RabbitMQ-using application. Patches are welcome if I'm missing
+ something you need! At the moment there are a number of shortcomings:
+
+ recv doesn't block
+
+ exchanges are all topic
+
+ lots of other stuff!
+
+ATTRIBUTES
+
+ connectable
+
+ If false then any calls to connect will die to emulate a failed
+ connection.
+
+ debug
+
+ If set to true (which you can do at any time) then a message will be
+ emitted to STDERR any time a message is added to a queue.
+
+METHODS
+
+ channel_close($number)
+
+ Closes the specific channel.
+
+ channel_open($number)
+
+ Opens a channel with the specific number.
+
+ connect
+
+ Connects this instance. Does nothing except set connected to true. Will
+ throw an exception if you've set connectable to false.
+
+ consume($channel, $queue)
+
+ Sets the queue that will be popped when recv is called.
+
+ cancel($channel, $consumer_tag)
+
+ Cancels the subscription for the given consumer tag. Calls to recv
+ after this will throw an error unless you call consume again. This
+ method always returns true if there is a subscription to cancel, false
+ otherwise.
+
+ disconnect
+
+ Disconnects this instance by setting connected to false.
+
+ exchange_declare($channel, $exchange, $options)
+
+ Creates an exchange of the specified name.
+
+ exchange_delete($channel, $exchange, $options)
+
+ Deletes an exchange of the specified name.
+
+ tx_select($channel)
+
+ Begins a transaction on the specified channel. From this point forward
+ all publish() calls on the channel will be buffered until a call to
+ "tx_commit" or "tx_rollback" is made.
+
+ tx_commit($channel)
+
+ Commits a transaction on the specified channel, causing all buffered
+ publish() calls to this point to be published.
+
+ tx_rollback($channel)
+
+ Rolls the transaction back, causing all buffered publish() calls to be
+ wiped.
+
+ get ($channel, $queue, $options)
+
+ Get a message from the queue, if there is one.
+
+ Like Net::RabbitMQ, this will return a hash containing the following
+ information:
+
+ {
+ body => 'Magic Transient Payload', # the reconstructed body
+ routing_key => 'nr_test_q', # route the message took
+ exchange => 'nr_test_x', # exchange used
+ delivery_tag => uint64(1), # (inc'd every recv or get)
+ redelivered => 0, # always 0
+ message_count => 0, # always 0
+ }
+
+ queue_bind($channel, $queue, $exchange, $routing_key)
+
+ Binds the specified queue to the specified exchange using the provided
+ routing key. Note that, at the moment, this doesn't work with AMQP
+ wildcards. Only with exact matches of the routing key.
+
+ queue_declare($channel, $queue, $options)
+
+ Creates a queue of the specified name.
+
+ queue_delete($channel, $queue, $options)
+
+ Deletes a queue of the specified name.
+
+ queue_unbind($channel, $queue, $exchange, $routing_key)
+
+ Unbinds the specified routing key from the provided queue and exchange.
+
+ publish($channel, $routing_key, $body, $options)
+
+ Publishes the specified body with the supplied routing key. If there is
+ a binding that matches then the message will be added to the
+ appropriate queue(s).
+
+ recv
+
+ Provided you've called consume then calls to recv will pop the next
+ message of the queue. Note that this method does not block.
+
+ Like Net::RabbitMQ, this will return a hash containing the following
+ information:
+
+ {
+ body => 'Magic Transient Payload', # the reconstructed body
+ routing_key => 'nr_test_q', # route the message took
+ exchange => 'nr_test_x', # exchange used
+ delivery_tag => uint64(1), # (inc'd every recv or get)
+ redelivered => $boolean # if message is redelivered
+ consumer_tag => '', # Always blank currently
+ props => $props, # hashref sent in
+ }
+
+AUTHOR
+
+ Cory G Watson <gphat@cpan.org>
+
+COPYRIGHT AND LICENSE
+
+ This software is copyright (c) 2015 by Cory G Watson.
+
+ This is free software; you can redistribute it and/or modify it under
+ the same terms as the Perl 5 programming language system itself.
+
@@ -1,168 +0,0 @@
-# NAME
-
-Test::Net::RabbitMQ - A mock RabbitMQ implementation for use when testing.
-
-# VERSION
-
-version 0.10
-
-# SYNOPSIS
-
- use Test::Net::RabbitMQ;
-
- my $mq = Test::Net::RabbitMQ->new;
-
- $mq->connect;
-
- $mq->channel_open(1);
-
- $mq->exchange_declare(1, 'order');
- $mq->queue_declare(1, 'new-orders');
-
- $mq->queue_bind(1, 'new-orders', 'order', 'order.new');
-
- $mq->publish(1, 'order.new', 'hello!', { exchange => 'order' });
-
- $mq->consume(1, 'new-orders');
-
- my $msg = $mq->recv;
-
- # Or
-
- my $msg = $mq->get(1, 'order.new', {});
-
-# DESCRIPTION
-
-Test::Net::RabbitMQ is a terrible approximation of using the real thing, but
-hopefully will allow you to test systems that use [Net::RabbitMQ](https://metacpan.org/pod/Net::RabbitMQ) without
-having to use an actual RabbitMQ instance.
-
-The general overview is that calls to `publish` pushes a message into one
-or more queues (or none if there are no bindings) and calls to `recv`
-pop them.
-
-# CAVEATS
-
-This module has all the features I've needed to successfully test our
-RabbitMQ-using application. Patches are welcome if I'm missing something you
-need! At the moment there are a number of shortcomings:
-
-- `recv` doesn't block
-- exchanges are all topic
-- lots of other stuff!
-
-# ATTRIBUTES
-
-## connectable
-
-If false then any calls to connect will die to emulate a failed connection.
-
-## debug
-
-If set to true (which you can do at any time) then a message will be emmitted
-to STDERR any time a message is added to a queue.
-
-# METHODS
-
-## channel\_close($number)
-
-Closes the specific channel.
-
-## channel\_open($number)
-
-Opens a channel with the specific number.
-
-## connect
-
-Connects this instance. Does nothing except set `connected` to true. Will
-throw an exception if you've set `connectable` to false.
-
-## consume($channel, $queue)
-
-Sets the queue that will be popped when `recv` is called.
-
-## disconnect
-
-Disconnects this instance by setting `connected` to false.
-
-## exchange\_declare($channel, $exchange, $options)
-
-Creates an exchange of the specified name.
-
-## tx\_select($channel)
-
-Begins a transaction on the specified channel. From this point forward all
-publish() calls on the channel will be buffered until a call to ["tx_commit"](#tx_commit)
-or ["tx_rollback"](#tx_rollback) is made.
-
-## tx\_commit($channel)
-
-Commits a transaction on the specified channel, causing all buffered publish()
-calls to this point to be published.
-
-## tx\_rollback($channel)
-
-Rolls the transaction back, causing all buffered publish() calls to be wiped.
-
-## get ($channel, $queue, $options)
-
-Get a message from the queue, if there is one.
-
-Like `Net::RabbitMQ`, this will return a hash containing the following
-information:
-
- {
- body => 'Magic Transient Payload', # the reconstructed body
- routing_key => 'nr_test_q', # route the message took
- exchange => 'nr_test_x', # exchange used
- delivery_tag => 1, # (inc'd every recv or get)
- redelivered => 0, # always 0
- message_count => 0, # always 0
- }
-
-## queue\_bind($channel, $queue, $exchange, $routing\_key)
-
-Binds the specified queue to the specified exchange using the provided
-routing key. __Note that, at the moment, this doesn't work with AMQP wildcards.
-Only with exact matches of the routing key.__
-
-## queue\_declare($channel, $queue, $options)
-
-Creates a queue of the specified name.
-
-## queue\_unbind($channel, $queue, $exchange, $routing\_key)
-
-Unbinds the specified routing key from the provided queue and exchange.
-
-## publish($channel, $routing\_key, $body, $options)
-
-Publishes the specified body with the supplied routing key. If there is a
-binding that matches then the message will be added to the appropriate queue(s).
-
-## recv
-
-Provided you've called `consume` then calls to recv will `pop` the next
-message of the queue. __Note that this method does not block.__
-
-Like `Net::RabbitMQ`, this will return a hash containing the following
-information:
-
- {
- body => 'Magic Transient Payload', # the reconstructed body
- routing_key => 'nr_test_q', # route the message took
- exchange => 'nr_test_x', # exchange used
- delivery_tag => 1, # (inc'd every recv or get)
- consumer_tag => '', # Always blank currently
- props => $props, # hashref sent in
- }
-
-# AUTHOR
-
-Cory G Watson <gphat@cpan.org>
-
-# COPYRIGHT AND LICENSE
-
-This software is copyright (c) 2014 by Cory G Watson.
-
-This is free software; you can redistribute it and/or modify it under
-the same terms as the Perl 5 programming language system itself.
@@ -0,0 +1,36 @@
+requires "Math::Int64" => "0.34";
+requires "Moose" => "0";
+requires "strict" => "0";
+requires "warnings" => "0";
+
+on 'test' => sub {
+ requires "ExtUtils::MakeMaker" => "0";
+ requires "File::Spec" => "0";
+ requires "IO::Handle" => "0";
+ requires "IPC::Open3" => "0";
+ requires "Test::Exception" => "0";
+ requires "Test::More" => "0.96";
+ requires "perl" => "5.006";
+};
+
+on 'test' => sub {
+ recommends "CPAN::Meta" => "2.120900";
+};
+
+on 'configure' => sub {
+ requires "ExtUtils::MakeMaker" => "0";
+};
+
+on 'develop' => sub {
+ requires "Perl::Critic" => "1.123";
+ requires "Perl::Tidy" => "20140711";
+ requires "Pod::Coverage::TrustPod" => "0";
+ requires "Test::CPAN::Changes" => "0.19";
+ requires "Test::EOL" => "0";
+ requires "Test::More" => "0.88";
+ requires "Test::NoTabs" => "0";
+ requires "Test::Pod" => "1.41";
+ requires "Test::Pod::Coverage" => "1.08";
+ requires "Test::Spelling" => "0.12";
+ requires "Test::Version" => "1";
+};
@@ -0,0 +1,13 @@
+name = Test-Net-RabbitMQ
+author = Cory G Watson <gphat@cpan.org>
+license = Perl_5
+copyright_holder= Cory G Watson
+
+[@DROLSKY]
+dist = Test-Net-RabbitMQ
+stopwords = AMQP
+stopwords = connectable
+-remove = DROLSKY::TidyAll
+-remove = Test::Pod::LinkCheck
+-remove = Test::Synopsis
+-remove = Test::TidyAll
@@ -1,9 +1,12 @@
package Test::Net::RabbitMQ;
-$Test::Net::RabbitMQ::VERSION = '0.10';
use Moose;
use warnings;
use strict;
+use Math::Int64 0.34 qw( uint64 );
+
+our $VERSION = '0.13';
+
# ABSTRACT: A mock RabbitMQ implementation for use when testing.
@@ -69,7 +72,9 @@ has exchanges => (
has queue => (
is => 'rw',
- isa => 'Str'
+ isa => 'Str',
+ predicate => '_has_queue',
+ clearer => '_clear_queue',
);
has queues => (
@@ -86,17 +91,23 @@ has queues => (
);
has delivery_tag => (
- traits => [ qw(Counter) ],
- is => 'ro',
- isa => 'Num',
- default => 0,
- handles => {
- _inc_delivery_tag => 'inc',
- _dec_delivery_tag => 'dec',
- _reset_delivery_tag => 'reset',
- },
+ is => 'rw',
+ isa => 'Math::UInt64',
+ default => sub { uint64(0) },
+ clearer => '_reset_delivery_tag',
+ writer => '_set_delivery_tag',
);
+sub _inc_delivery_tag {
+ my $self = shift;
+ $self->_set_delivery_tag( $self->delivery_tag + 1 );
+}
+
+sub _dec_delivery_tag {
+ my $self = shift;
+ $self->_set_delivery_tag( $self->delivery_tag - 1 );
+}
+
has _tx_messages => (
is => 'ro',
isa => 'HashRef',
@@ -133,6 +144,7 @@ sub connect {
}
+my $ctag = 0;
sub consume {
my ($self, $channel, $queue, $options) = @_;
@@ -151,6 +163,26 @@ sub consume {
die "no_ack=>0 is not supported at this time" if !$options->{no_ack};
$self->queue($queue);
+
+ return exists $options->{consumer_tag}
+ ? $options->{consumer_tag}
+ : 'consumer-tag-' . $ctag++;
+}
+
+
+sub cancel {
+ my ($self, $channel, $consumer_tag) = @_;
+
+ die "Not connected" unless $self->connected;
+
+ die "You must provide a consumer tag"
+ unless defined $consumer_tag && length $consumer_tag;
+
+ return 0 unless $self->_has_queue;
+
+ $self->_clear_queue;
+
+ return 1;
}
@@ -174,6 +206,17 @@ sub exchange_declare {
}
+sub exchange_delete {
+ my ($self, $channel, $exchange, $options) = @_;
+
+ die "Not connected" unless $self->connected;
+
+ die "Unknown channel" unless $self->_channel_exists($channel);
+
+ $self->_remove_exchange($exchange);
+}
+
+
sub tx_select {
my ($self, $channel) = @_;
@@ -277,6 +320,7 @@ sub queue_bind {
}
+my $queue = 0;
sub queue_declare {
my ($self, $channel, $queue, $options) = @_;
@@ -284,7 +328,36 @@ sub queue_declare {
die "Unknown channel: $channel" unless $self->_channel_exists($channel);
- $self->_set_queue($queue, []);
+ if ($options->{passive}) {
+ # Would rabbitmq die if $queue was undef or q{}?
+ return
+ unless defined $queue
+ && length $queue
+ && $self->_queue_exists($queue);
+ }
+ else {
+ $queue = 'queue-' . $queue++
+ unless defined $queue && length $queue;
+ $self->_set_queue($queue, []) unless $self->_queue_exists($queue);
+ }
+
+ return $queue unless wantarray;
+ return (
+ $queue,
+ scalar @{ $self->_get_queue($queue) },
+ $self->queue && $self->queue eq $queue ? 1 : 0,
+ );
+}
+
+
+sub queue_delete {
+ my ($self, $channel, $queue, $options) = @_;
+
+ die "Not connected" unless $self->connected;
+
+ die "Unknown channel" unless $self->_channel_exists($channel);
+
+ $self->_remove_queue($queue);
}
@@ -309,6 +382,10 @@ sub publish {
my $self = shift;
my $channel = shift;
+ die "Not connected" unless $self->connected;
+
+ die "Unknown channel: $channel" unless $self->_channel_exists($channel);
+
my $messages = $self->_tx_messages->{ $channel };
if ($messages) {
push @$messages, [ @_ ];
@@ -321,10 +398,6 @@ sub publish {
sub _publish {
my ($self, $channel, $routing_key, $body, $options, $props) = @_;
- die "Not connected" unless $self->connected;
-
- die "Unknown channel: $channel" unless $self->_channel_exists($channel);
-
my $exchange = $options->{exchange};
unless($exchange) {
$exchange = 'amq.direct';
@@ -364,6 +437,7 @@ sub recv {
$message->{delivery_tag} = $self->_inc_delivery_tag;
$message->{consumer_tag} = '';
+ $message->{redelivered} = 0;
return $message;
}
@@ -398,7 +472,7 @@ Test::Net::RabbitMQ - A mock RabbitMQ implementation for use when testing.
=head1 VERSION
-version 0.10
+version 0.13
=head1 SYNOPSIS
@@ -420,16 +494,16 @@ version 0.10
$mq->consume(1, 'new-orders');
my $msg = $mq->recv;
-
+
# Or
-
+
my $msg = $mq->get(1, 'order.new', {});
=head1 DESCRIPTION
Test::Net::RabbitMQ is a terrible approximation of using the real thing, but
-hopefully will allow you to test systems that use L<Net::RabbitMQ> without
-having to use an actual RabbitMQ instance.
+hopefully will allow you to test systems that use L<Net::AMQP::RabbitMQ> or
+L<Net::RabbitMQ> without having to use an actual RabbitMQ instance.
The general overview is that calls to C<publish> pushes a message into one
or more queues (or none if there are no bindings) and calls to C<recv>
@@ -437,7 +511,7 @@ pop them.
=head1 CAVEATS
-This module has all the features I've needed to successfully test our
+This module has all the features I've needed to successfully test our
RabbitMQ-using application. Patches are welcome if I'm missing something you
need! At the moment there are a number of shortcomings:
@@ -459,7 +533,7 @@ If false then any calls to connect will die to emulate a failed connection.
=head2 debug
-If set to true (which you can do at any time) then a message will be emmitted
+If set to true (which you can do at any time) then a message will be emitted
to STDERR any time a message is added to a queue.
=head1 METHODS
@@ -481,6 +555,12 @@ throw an exception if you've set C<connectable> to false.
Sets the queue that will be popped when C<recv> is called.
+=head2 cancel($channel, $consumer_tag)
+
+Cancels the subscription for the given consumer tag. Calls to C<recv> after
+this will throw an error unless you call C<consume> again. This method always
+returns true if there is a subscription to cancel, false otherwise.
+
=head2 disconnect
Disconnects this instance by setting C<connected> to false.
@@ -489,6 +569,10 @@ Disconnects this instance by setting C<connected> to false.
Creates an exchange of the specified name.
+=head2 exchange_delete($channel, $exchange, $options)
+
+Deletes an exchange of the specified name.
+
=head2 tx_select($channel)
Begins a transaction on the specified channel. From this point forward all
@@ -515,7 +599,7 @@ information:
body => 'Magic Transient Payload', # the reconstructed body
routing_key => 'nr_test_q', # route the message took
exchange => 'nr_test_x', # exchange used
- delivery_tag => 1, # (inc'd every recv or get)
+ delivery_tag => uint64(1), # (inc'd every recv or get)
redelivered => 0, # always 0
message_count => 0, # always 0
}
@@ -530,6 +614,10 @@ Only with exact matches of the routing key.>
Creates a queue of the specified name.
+=head2 queue_delete($channel, $queue, $options)
+
+Deletes a queue of the specified name.
+
=head2 queue_unbind($channel, $queue, $exchange, $routing_key)
Unbinds the specified routing key from the provided queue and exchange.
@@ -551,7 +639,8 @@ information:
body => 'Magic Transient Payload', # the reconstructed body
routing_key => 'nr_test_q', # route the message took
exchange => 'nr_test_x', # exchange used
- delivery_tag => 1, # (inc'd every recv or get)
+ delivery_tag => uint64(1), # (inc'd every recv or get)
+ redelivered => $boolean # if message is redelivered
consumer_tag => '', # Always blank currently
props => $props, # hashref sent in
}
@@ -562,7 +651,7 @@ Cory G Watson <gphat@cpan.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2014 by Cory G Watson.
+This software is copyright (c) 2015 by Cory G Watson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -0,0 +1,51 @@
+use 5.006;
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.052
+
+use Test::More;
+
+plan tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
+
+my @module_files = (
+ 'Test/Net/RabbitMQ.pm'
+);
+
+
+
+# no fake home requested
+
+my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib';
+
+use File::Spec;
+use IPC::Open3;
+use IO::Handle;
+
+open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
+
+my @warnings;
+for my $lib (@module_files)
+{
+ # see L<perlfaq8/How can I capture STDERR from an external command?>
+ my $stderr = IO::Handle->new;
+
+ my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]");
+ binmode $stderr, ':crlf' if $^O eq 'MSWin32';
+ my @_warnings = <$stderr>;
+ waitpid($pid, 0);
+ is($?, 0, "$lib loaded ok");
+
+ if (@_warnings)
+ {
+ warn @_warnings;
+ push @warnings, @_warnings;
+ }
+}
+
+
+
+is(scalar(@warnings), 0, 'no warnings found')
+ or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING};
+
+
@@ -0,0 +1,46 @@
+do { my $x = {
+ 'configure' => {
+ 'requires' => {
+ 'ExtUtils::MakeMaker' => '0'
+ }
+ },
+ 'develop' => {
+ 'requires' => {
+ 'Perl::Critic' => '1.123',
+ 'Perl::Tidy' => '20140711',
+ 'Pod::Coverage::TrustPod' => '0',
+ 'Test::CPAN::Changes' => '0.19',
+ 'Test::EOL' => '0',
+ 'Test::More' => '0.88',
+ 'Test::NoTabs' => '0',
+ 'Test::Pod' => '1.41',
+ 'Test::Pod::Coverage' => '1.08',
+ 'Test::Spelling' => '0.12',
+ 'Test::Version' => '1'
+ }
+ },
+ 'runtime' => {
+ 'requires' => {
+ 'Math::Int64' => '0.34',
+ 'Moose' => '0',
+ 'strict' => '0',
+ 'warnings' => '0'
+ }
+ },
+ 'test' => {
+ 'recommends' => {
+ 'CPAN::Meta' => '2.120900'
+ },
+ 'requires' => {
+ 'ExtUtils::MakeMaker' => '0',
+ 'File::Spec' => '0',
+ 'IO::Handle' => '0',
+ 'IPC::Open3' => '0',
+ 'Test::Exception' => '0',
+ 'Test::More' => '0.96',
+ 'perl' => '5.006'
+ }
+ }
+ };
+ $x;
+ }
\ No newline at end of file
@@ -0,0 +1,183 @@
+#!perl
+
+use strict;
+use warnings;
+
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.021
+
+use Test::More tests => 1;
+
+use ExtUtils::MakeMaker;
+use File::Spec;
+
+# from $version::LAX
+my $lax_version_re =
+ qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )?
+ |
+ (?:\.[0-9]+) (?:_[0-9]+)?
+ ) | (?:
+ v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )?
+ |
+ (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)?
+ )
+ )/x;
+
+# hide optional CPAN::Meta modules from prereq scanner
+# and check if they are available
+my $cpan_meta = "CPAN::Meta";
+my $cpan_meta_pre = "CPAN::Meta::Prereqs";
+my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic
+
+# Verify requirements?
+my $DO_VERIFY_PREREQS = 1;
+
+sub _max {
+ my $max = shift;
+ $max = ( $_ > $max ) ? $_ : $max for @_;
+ return $max;
+}
+
+sub _merge_prereqs {
+ my ($collector, $prereqs) = @_;
+
+ # CPAN::Meta::Prereqs object
+ if (ref $collector eq $cpan_meta_pre) {
+ return $collector->with_merged_prereqs(
+ CPAN::Meta::Prereqs->new( $prereqs )
+ );
+ }
+
+ # Raw hashrefs
+ for my $phase ( keys %$prereqs ) {
+ for my $type ( keys %{ $prereqs->{$phase} } ) {
+ for my $module ( keys %{ $prereqs->{$phase}{$type} } ) {
+ $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module};
+ }
+ }
+ }
+
+ return $collector;
+}
+
+my @include = qw(
+
+);
+
+my @exclude = qw(
+
+);
+
+# Add static prereqs to the included modules list
+my $static_prereqs = do 't/00-report-prereqs.dd';
+
+# Merge all prereqs (either with ::Prereqs or a hashref)
+my $full_prereqs = _merge_prereqs(
+ ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ),
+ $static_prereqs
+);
+
+# Add dynamic prereqs to the included modules list (if we can)
+my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
+if ( $source && $HAS_CPAN_META ) {
+ if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
+ $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
+ }
+}
+else {
+ $source = 'static metadata';
+}
+
+my @full_reports;
+my @dep_errors;
+my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
+
+# Add static includes into a fake section
+for my $mod (@include) {
+ $req_hash->{other}{modules}{$mod} = 0;
+}
+
+for my $phase ( qw(configure build test runtime develop other) ) {
+ next unless $req_hash->{$phase};
+ next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING});
+
+ for my $type ( qw(requires recommends suggests conflicts modules) ) {
+ next unless $req_hash->{$phase}{$type};
+
+ my $title = ucfirst($phase).' '.ucfirst($type);
+ my @reports = [qw/Module Want Have/];
+
+ for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) {
+ next if $mod eq 'perl';
+ next if grep { $_ eq $mod } @exclude;
+
+ my $file = $mod;
+ $file =~ s{::}{/}g;
+ $file .= ".pm";
+ my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC;
+
+ my $want = $req_hash->{$phase}{$type}{$mod};
+ $want = "undef" unless defined $want;
+ $want = "any" if !$want && $want == 0;
+
+ my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required";
+
+ if ($prefix) {
+ my $have = MM->parse_version( File::Spec->catfile($prefix, $file) );
+ $have = "undef" unless defined $have;
+ push @reports, [$mod, $want, $have];
+
+ if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) {
+ if ( $have !~ /\A$lax_version_re\z/ ) {
+ push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)";
+ }
+ elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) {
+ push @dep_errors, "$mod version '$have' is not in required range '$want'";
+ }
+ }
+ }
+ else {
+ push @reports, [$mod, $want, "missing"];
+
+ if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) {
+ push @dep_errors, "$mod is not installed ($req_string)";
+ }
+ }
+ }
+
+ if ( @reports ) {
+ push @full_reports, "=== $title ===\n\n";
+
+ my $ml = _max( map { length $_->[0] } @reports );
+ my $wl = _max( map { length $_->[1] } @reports );
+ my $hl = _max( map { length $_->[2] } @reports );
+
+ if ($type eq 'modules') {
+ splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl];
+ push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports;
+ }
+ else {
+ splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl];
+ push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports;
+ }
+
+ push @full_reports, "\n";
+ }
+ }
+}
+
+if ( @full_reports ) {
+ diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports;
+}
+
+if ( @dep_errors ) {
+ diag join("\n",
+ "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n",
+ "The following REQUIRED prerequisites were not satisfied:\n",
+ @dep_errors,
+ "\n"
+ );
+}
+
+pass;
+
+# vim: ts=4 sts=4 sw=4 et:
@@ -0,0 +1,43 @@
+
+BEGIN {
+ unless ($ENV{AUTHOR_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for testing by the author');
+ }
+}
+
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.17
+
+use Test::More 0.88;
+use Test::EOL;
+
+my @files = (
+ 'lib/Test/Net/RabbitMQ.pm',
+ 't/00-compile.t',
+ 't/00-report-prereqs.dd',
+ 't/00-report-prereqs.t',
+ 't/ack.t',
+ 't/author-eol.t',
+ 't/author-no-tabs.t',
+ 't/author-pod-spell.t',
+ 't/channels.t',
+ 't/connections.t',
+ 't/fifo.t',
+ 't/pubsub.t',
+ 't/queue.t',
+ 't/release-cpan-changes.t',
+ 't/release-pod-coverage.t',
+ 't/release-pod-no404s.t',
+ 't/release-pod-syntax.t',
+ 't/release-portability.t',
+ 't/release-test-version.t',
+ 't/simple.t',
+ 't/tx.t',
+ 't/wildcard.t'
+);
+
+eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files;
+done_testing;
@@ -0,0 +1,43 @@
+
+BEGIN {
+ unless ($ENV{AUTHOR_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for testing by the author');
+ }
+}
+
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.13
+
+use Test::More 0.88;
+use Test::NoTabs;
+
+my @files = (
+ 'lib/Test/Net/RabbitMQ.pm',
+ 't/00-compile.t',
+ 't/00-report-prereqs.dd',
+ 't/00-report-prereqs.t',
+ 't/ack.t',
+ 't/author-eol.t',
+ 't/author-no-tabs.t',
+ 't/author-pod-spell.t',
+ 't/channels.t',
+ 't/connections.t',
+ 't/fifo.t',
+ 't/pubsub.t',
+ 't/queue.t',
+ 't/release-cpan-changes.t',
+ 't/release-pod-coverage.t',
+ 't/release-pod-no404s.t',
+ 't/release-pod-syntax.t',
+ 't/release-portability.t',
+ 't/release-test-version.t',
+ 't/simple.t',
+ 't/tx.t',
+ 't/wildcard.t'
+);
+
+notabs_ok($_) foreach @files;
+done_testing;
@@ -0,0 +1,44 @@
+
+BEGIN {
+ unless ($ENV{AUTHOR_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for testing by the author');
+ }
+}
+
+use strict;
+use warnings;
+use Test::More;
+
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006008
+use Test::Spelling 0.12;
+use Pod::Wordlist;
+
+
+add_stopwords(<DATA>);
+all_pod_files_spelling_ok( qw( bin lib ) );
+__DATA__
+DROLSKY
+DROLSKY's
+Rolsky
+Rolsky's
+AMQP
+connectable
+Cory
+Watson
+gphat
+Aran
+Deltac
+bluefeet
+Dave
+autarch
+Ran
+Eilam
+reilam
+Ryan
+Olson
+rolson
+lib
+Test
+Net
+RabbitMQ
@@ -17,14 +17,29 @@ $mq->queue_bind(1, 'new-orders', 'order', 'order.new');
$mq->publish(1, 'order.new', 'hello!', { exchange => 'order' });
-$mq->consume(1, 'new-orders');
+my $ctag = $mq->consume(1, 'new-orders');
+like($ctag, qr/^[\w-]+$/, 'got a sane consumer tag back from consume');
my $msg = $mq->recv;
cmp_ok($msg->{body}, 'eq', 'hello!', 'recv got the message');
+ok(exists $msg->{redelivered}, 'msg has redelivered key');
+
+ok($mq->cancel(1, $ctag), 'cancel');
+ok(!$mq->cancel(1, $ctag), 'cancel returns false without a matching consume');
+
+dies_ok { $mq->cancel } 'must provide a channel to cancel';
+dies_ok { $mq->cancel(1) } 'must provide a consumer tag to cancel';
+dies_ok { $mq->cancel(1, undef) } 'must provide a non-undef consumer tag to cancel';
$mq->publish(1, 'order.new', 'hello!', { exchange => 'order' });
my $msg2 = $mq->get(1, 'new-orders', {});
cmp_ok($msg2->{body}, 'eq', 'hello!', 'get got the message');
+$mq->disconnect;
+
+for my $meth (qw( publish consume recv cancel ) ) {
+ dies_ok { $mq->$meth } "cannot call $meth if not connected";
+}
+
done_testing;
@@ -0,0 +1,48 @@
+use Test::More;
+use Test::Exception;
+
+use Test::Net::RabbitMQ;
+
+my $mq = Test::Net::RabbitMQ->new;
+isa_ok($mq, 'Test::Net::RabbitMQ', 'instantiated');
+
+$mq->connect;
+
+$mq->channel_open(1);
+
+$mq->exchange_declare(1, 'ex');
+my ($queue_name, $msg_count, $consumer_count)
+ = $mq->queue_declare(1, 'bind-twice');
+is($queue_name, 'bind-twice', 'queue_declare returns given queue name');
+is($msg_count, 0, 'queue_declare returns message count of 0 for new queue');
+is($consumer_count, 0, 'queue_declare returns consumer count of 0 for new queue');
+
+is_deeply(
+ [ $mq->queue_declare(1, 'bind-twice', { passive => 1 }) ],
+ [ 'bind-twice', 0, 0 ],
+ 'queue_declare with passive => 1'
+);
+
+$mq->queue_bind(1, 'bind-twice', 'ex', 'key');
+$mq->publish(
+ 1, 'key', 'message body',
+ { exchange => 'ex' },
+ { content_type => 'text/plain' }
+);
+
+is_deeply(
+ [ $mq->queue_declare(1, 'bind-twice', { passive => 1 }) ],
+ [ 'bind-twice', 1, 0 ],
+ 'queue_declare with passive => 1 has a message'
+);
+
+$mq->queue_declare(1, 'bind-twice');
+
+my $msg = $mq->get(1, 'bind-twice');
+ok($msg, 'got message after calling queue_declare');
+is($msg->{body}, 'message body', 'message body contains expected content');
+
+lives_ok { $mq->queue_delete(1, 'bind-twice') } 'queue_delete';
+lives_ok { $mq->exchange_delete(1, 'bind-twice') } 'ex';
+
+done_testing;
@@ -0,0 +1,19 @@
+#!perl
+
+BEGIN {
+ unless ($ENV{RELEASE_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for release candidate testing');
+ }
+}
+
+
+use strict;
+use warnings;
+
+use Test::More 0.96 tests => 2;
+use_ok('Test::CPAN::Changes');
+subtest 'changes_ok' => sub {
+ changes_file_ok('Changes');
+};
+done_testing();
@@ -0,0 +1,52 @@
+#!perl
+
+BEGIN {
+ unless ($ENV{RELEASE_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for release candidate testing');
+ }
+}
+
+# This file was automatically generated by Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable.
+
+use Test::Pod::Coverage 1.08;
+use Test::More 0.88;
+
+BEGIN {
+ if ( $] <= 5.008008 ) {
+ plan skip_all => 'These tests require Pod::Coverage::TrustPod, which only works with Perl 5.8.9+';
+ }
+}
+use Pod::Coverage::TrustPod;
+
+my %skip = map { $_ => 1 } qw( );
+
+my @modules;
+for my $module ( all_modules() ) {
+ next if $skip{$module};
+
+ push @modules, $module;
+}
+
+plan skip_all => 'All the modules we found were excluded from POD coverage test.'
+ unless @modules;
+
+plan tests => scalar @modules;
+
+my %trustme = ();
+
+my @also_private;
+
+for my $module ( sort @modules ) {
+ pod_coverage_ok(
+ $module,
+ {
+ coverage_class => 'Pod::Coverage::TrustPod',
+ also_private => \@also_private,
+ trustme => $trustme{$module} || [],
+ },
+ "pod coverage for $module"
+ );
+}
+
+done_testing();
@@ -0,0 +1,29 @@
+#!perl
+
+BEGIN {
+ unless ($ENV{RELEASE_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for release candidate testing');
+ }
+}
+
+
+use strict;
+use warnings;
+use Test::More;
+
+foreach my $env_skip ( qw(
+ SKIP_POD_NO404S
+ AUTOMATED_TESTING
+) ){
+ plan skip_all => "\$ENV{$env_skip} is set, skipping"
+ if $ENV{$env_skip};
+}
+
+eval "use Test::Pod::No404s";
+if ( $@ ) {
+ plan skip_all => 'Test::Pod::No404s required for testing POD';
+}
+else {
+ all_pod_files_ok();
+}
@@ -9,8 +9,6 @@ BEGIN {
# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
+use Test::Pod 1.41;
all_pod_files_ok();
@@ -0,0 +1,20 @@
+#!perl
+
+BEGIN {
+ unless ($ENV{RELEASE_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for release candidate testing');
+ }
+}
+
+
+use strict;
+use warnings;
+
+use Test::More;
+
+eval 'use Test::Portability::Files';
+plan skip_all => 'Test::Portability::Files required for testing portability'
+ if $@;
+
+run_tests();
@@ -1,16 +0,0 @@
-#!perl
-
-BEGIN {
- unless ($ENV{RELEASE_TESTING}) {
- require Test::More;
- Test::More::plan(skip_all => 'these tests are for release candidate testing');
- }
-}
-
-
-use Test::More;
-
-eval "use Test::Synopsis";
-plan skip_all => "Test::Synopsis required for testing synopses"
- if $@;
-all_synopsis_ok();
@@ -0,0 +1,30 @@
+
+BEGIN {
+ unless ($ENV{RELEASE_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for release candidate testing');
+ }
+}
+
+use strict;
+use warnings;
+use Test::More;
+
+# generated by Dist::Zilla::Plugin::Test::Version 0.003001
+use Test::Version;
+
+my @imports = ( 'version_all_ok' );
+
+my $params = {
+ is_strict => 1,
+ has_version => 1,
+};
+
+push @imports, $params
+ if version->parse( $Test::Version::VERSION ) >= version->parse('1.002');
+
+
+Test::Version->import(@imports);
+
+version_all_ok;
+done_testing;
@@ -0,0 +1,23 @@
+[@CorePrep]
+
+[Name]
+[Version]
+
+[Generic / SYNOPSIS]
+[Generic / DESCRIPTION]
+[Generic / OVERVIEW]
+
+[Region / prelude]
+
+[Leftovers]
+
+[Collect / ATTRIBUTES]
+command = attr
+
+[Collect / METHODS]
+command = method
+
+[Region / postlude]
+
+[Authors]
+[Legal]
\ No newline at end of file