use strict; use warnings; use Test::More 0.88; use Test::DZil; use Test::Deep; { package Keywords; # see also Dist::Zilla::Plugin::Keywords ;) use Moose; with 'Dist::Zilla::Role::MetaProvider'; sub mvp_multivalue_args { qw(keywords) } has keywords => ( is => 'ro', isa => 'ArrayRef[Str]', lazy => 1, default => sub { [] }, ); sub metadata { my $self = shift; my $keywords = $self->keywords; return { @$keywords ? ( keywords => $keywords ) : () }; } } { my $tzil = Builder->from_config( { dist_root => 'corpus/dist/DZT' }, { add_files => { 'source/dist.ini' => simple_ini( [ '=Keywords' => 'plugin 1' => { keywords => [ qw(foo bar) ] } ], [ '=Keywords' => 'plugin 2' => { keywords => [ qw(dog cat) ] } ], ), }, }, ); cmp_deeply( $tzil->distmeta, { abstract => 'Sample DZ Dist', author => ['E. Xavier Ample <example@example.org>'], dynamic_config => 0, generated_by => ignore, license => [ 'perl_5' ], 'meta-spec' => { url => 'http://search.cpan.org/perldoc?CPAN::Meta::Spec', version => 2 }, name => 'DZT-Sample', release_status => 'stable', version => '0.001', keywords => [ qw(foo bar dog cat) ], x_generated_by_perl => "$^V", x_spdx_expression => 'Artistic-1.0-Perl OR GPL-1.0-or-later', }, 'metadata is correctly merged together', ); } done_testing;