The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

BEGIN { $| = 1; }

use Archive::Zip qw( :ERROR_CODES );
use Test::More;

foreach my $pass (qw( wrong test )) {
    my $zip = Archive::Zip->new();
    isa_ok($zip, "Archive::Zip");

    is($zip->read("t/data/crypt.zip"), AZ_OK, "Read file");

    ok(my @mn = $zip->memberNames, "get memberNames");
    is_deeply(\@mn, ["decrypt.txt"], "memberNames");

    ok(my $m = $zip->memberNamed($mn[0]), "find member");
    isa_ok($m, "Archive::Zip::Member");

    is($m->password($pass), $pass, "set password");
    is($m->password(),      $pass, "get password");
    is(
        $m->contents,
        $pass eq "test"
        ? "encryption test\n"
        : "",
        "Decoded buffer"
    );
}

done_testing;