The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package t::10000_by_class::Net::BitTorrent::Torrent::Generator;
{
    use strict;
    use warnings;
    our $MAJOR = 0.074; our $MINOR = 0; our $DEV = 12; our $VERSION = sprintf('%1.3f%03d' . ($DEV ? (($DEV < 0 ? '' : '_') . '%03d') : ('')), $MAJOR, $MINOR, abs $DEV);
    use 5.010.000;
    use Test::Most;
    use lib '../', '../../../../../', '../../../../../lib', 'lib';
    use Net::BitTorrent::Torrent::Generator;
    use parent 'Test::Class';
    $|++;

    # Basic utility functions/methods
    sub info_hash {'87411D31D8EEE096DE8E3F2E975FF789748DEFC5'}
    sub files     {'./t/90000_data/96000_data/96020_miniswarm_seed/'}

    sub new_args {
        my $s = shift;
        -e $s->files ? last : chdir '..' for 0 .. 15;
        (files => $s->files);
    }

    sub startup : Test( startup => 1 ) {
        my $s = shift;
        $s->{'torrent'} = new_ok 'Net::BitTorrent::Torrent::Generator',
            [$s->new_args];
        explain 'New metadata looks like...', $s->{'torrent'};
    }

    sub _000_info_hash : Test( 1 ) {
        my $s = shift;
        is $s->{'torrent'}->info_hash->to_Hex, $s->info_hash,
            'generated info_hash';
        explain 'Metadata now looks like...', $s->{'torrent'};
    }

    sub _200_api : Test( 7 ) {
        my $s = shift;
        is $s->{'torrent'}->comment, undef, 'default comment is undef';
        ok !$s->{'torrent'}->_has_comment, '_has_comment is false';
        ok $s->{'torrent'}->_set_comment('See credit.txt for attributions.'),
            '_set_comment( ... )';
        is $s->{'torrent'}->comment, 'See credit.txt for attributions.',
            'comment is correct';

        sub _files {
            ['./t/90000_data/96000_data/96020_miniswarm_seed/1291672777_30adc6a421_o.jpg',
             './t/90000_data/96000_data/96020_miniswarm_seed/2183742557_5c9a91727d_m.jpg',
             './t/90000_data/96000_data/96020_miniswarm_seed/credit.txt'
            ];
        }
        is_deeply $s->{'torrent'}->files, $s->_files,
            'list of files is correct';
        is $s->{'torrent'}->_count_files, scalar(@{$s->_files}),
            '_count_files is correct';
        {
            my $expected;
            for my $file (@{$s->_files}) { $expected += -s $file }
            is $s->{'torrent'}->total_size, $expected,
                'total_size is correct'
        }
    }

    #
    #$ENV{'TEST_VERBOSE'}++;
    __PACKAGE__->runtests() if !caller;
}
1;

=pod

=head1 Author

Sanko Robinson <sanko@cpan.org> - http://sankorobinson.com/

CPAN ID: SANKO

=head1 License and Legal

Copyright (C) 2008-2010 by Sanko Robinson <sanko@cpan.org>

This program is free software; you can redistribute it and/or modify it under
the terms of
L<The Artistic License 2.0|http://www.perlfoundation.org/artistic_license_2_0>.
See the F<LICENSE> file included with this distribution or
L<notes on the Artistic License 2.0|http://www.perlfoundation.org/artistic_2_0_notes>
for clarification.

When separated from the distribution, all original POD documentation is
covered by the
L<Creative Commons Attribution-Share Alike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/us/legalcode>.
See the
L<clarification of the CCA-SA3.0|http://creativecommons.org/licenses/by-sa/3.0/us/>.

Neither this module nor the L<Author|/Author> is affiliated with BitTorrent,
Inc.

=for rcs $Id: Generator.t fb35269 2010-09-17 04:27:05Z sanko@cpan.org $

=cut