App-CpanfileSlipstop

 view release on metacpan or  search on metacpan

t/01_resolver.t  view on Meta::CPAN

subtest simple => sub {
    my $resolver = App::CpanfileSlipstop::Resolver->new(
        cpanfile => test_cpanfile('simple'),
        snapshot => test_snapshot('simple'),
    );

    $resolver->read_cpanfile_requirements;
    $resolver->merge_snapshot_versions('exact_version', 0);

    is $resolver->get_version_range('DateTime'), '== 1.50';
    is $resolver->get_version_range('JSON::XS'), '== 3.04';
    is $resolver->get_version_range('Data::Printer'), '== 0.40';
    is $resolver->get_version_range('Test::More'), undef;

    # The version of core module is depends on interpreter version. So it's not fiexed.
    $resolver->merge_snapshot_versions('exact_version', 1);
    like $resolver->get_version_range('Test::More'), qr/\A== /;
};

subtest indent => sub {
    my $resolver = App::CpanfileSlipstop::Resolver->new(
        cpanfile => test_cpanfile('indent'),
        snapshot => test_snapshot('indent'),
    );

    $resolver->read_cpanfile_requirements;
    $resolver->merge_snapshot_versions('add_minimum', 0);

    is $resolver->get_version_range('DateTime'), '1.50';
    is $resolver->get_version_range('JSON::XS'), '3.04';
    is $resolver->get_version_range('Data::Printer'), '0.40';
    is $resolver->get_version_range('Test::More'), undef;
};

subtest phases => sub {
    my $resolver = App::CpanfileSlipstop::Resolver->new(
        cpanfile => test_cpanfile('phases'),
        snapshot => test_snapshot('phases'),
    );

    $resolver->read_cpanfile_requirements;
    $resolver->merge_snapshot_versions('add_maximum', 0);

    is $resolver->get_version_range('DateTime'), '<= 1.50';
    is $resolver->get_version_range('JSON::XS'), '<= 3.04';
    is $resolver->get_version_range('Data::Printer'), '<= 0.40';
    is $resolver->get_version_range('Test::More'), undef;
};

subtest types => sub {
    my $resolver = App::CpanfileSlipstop::Resolver->new(
        cpanfile => test_cpanfile('types'),
        snapshot => test_snapshot('types'),
    );

    $resolver->read_cpanfile_requirements;
    $resolver->merge_snapshot_versions('add_minimum', 0);

    is $resolver->get_version_range('DateTime'), '1.50';
    is $resolver->get_version_range('JSON::XS'), undef;
    is $resolver->get_version_range('Data::Printer'), undef;
    is $resolver->get_version_range('Test::More'), '0.99';
};

subtest versioned => sub {
    my $resolver = App::CpanfileSlipstop::Resolver->new(
        cpanfile => test_cpanfile('versioned'),
        snapshot => test_snapshot('versioned'),
    );

    $resolver->read_cpanfile_requirements;
    is $resolver->get_version_range('DateTime'), undef;
    is $resolver->get_version_range('JSON::XS'), 3.00;
    is $resolver->get_version_range('Data::Printer'), '== 0.38';
    is $resolver->get_version_range('Test::More'), '> 0.9, < 1.0, != 0.98';

    $resolver->merge_snapshot_versions('add_minimum', 0);
    is $resolver->get_version_range('DateTime'), '1.50';             # inserted installed version as minimum
    is $resolver->get_version_range('JSON::XS'), '3.04';             # updated installed version as minimum
    is $resolver->get_version_range('Data::Printer'), '== 0.38';     # not changed
    is $resolver->get_version_range('Test::More'), '>= 0.99, < 1.0'; # udpate and merged minimum version
};

done_testing;

t/files/indent.cpanfile  view on Meta::CPAN

requires 'DateTime';

requires
    'JSON::XS';

    requires 'Data::Printer';

# requires 'JSON::XS';

t/files/indent.cpanfile.exact  view on Meta::CPAN

requires 'DateTime', '== 1.50';

requires
    'JSON::XS', '== 3.04';

    requires 'Data::Printer', '== 0.40';

# requires 'JSON::XS';

t/files/indent.cpanfile.minimum  view on Meta::CPAN

requires 'DateTime', '1.50';

requires
    'JSON::XS', '3.04';

    requires 'Data::Printer', '0.40';

# requires 'JSON::XS';

t/files/indent.snapshot  view on Meta::CPAN

  File-Which-1.22
    pathname: P/PL/PLICEASE/File-Which-1.22.tar.gz
    provides:
      File::Which 1.22
    requirements:
      ExtUtils::MakeMaker 0
      perl 5.006
  JSON-XS-3.04
    pathname: M/ML/MLEHMANN/JSON-XS-3.04.tar.gz
    provides:
      JSON::XS 3.04
    requirements:
      Canary::Stability 0
      ExtUtils::MakeMaker 6.52
      Types::Serialiser 0
      common::sense 0
  MRO-Compat-0.13
    pathname: H/HA/HAARG/MRO-Compat-0.13.tar.gz
    provides:
      MRO::Compat 0.13
    requirements:

t/files/literals.cpanfile  view on Meta::CPAN

# single quote
requires 'DateTime';

# double quote
requires "JSON::XS";

# q
requires q{Data::Printer};

# qq
requires qq{Test::More};

t/files/literals.cpanfile.exact  view on Meta::CPAN

# single quote
requires 'DateTime', '== 1.50';

# double quote
requires "JSON::XS", "== 3.04";

# q
requires q{Data::Printer}, '== 0.40';

# qq
requires qq{Test::More}, '== 0.99';

t/files/literals.cpanfile.minimum  view on Meta::CPAN

# single quote
requires 'DateTime', '1.50';

# double quote
requires "JSON::XS", "3.04";

# q
requires q{Data::Printer}, '0.40';

# qq
requires qq{Test::More}, '0.99';

t/files/literals.snapshot  view on Meta::CPAN

  File-Which-1.22
    pathname: P/PL/PLICEASE/File-Which-1.22.tar.gz
    provides:
      File::Which 1.22
    requirements:
      ExtUtils::MakeMaker 0
      perl 5.006
  JSON-XS-3.04
    pathname: M/ML/MLEHMANN/JSON-XS-3.04.tar.gz
    provides:
      JSON::XS 3.04
    requirements:
      Canary::Stability 0
      ExtUtils::MakeMaker 6.52
      Types::Serialiser 0
      common::sense 0
  MRO-Compat-0.13
    pathname: H/HA/HAARG/MRO-Compat-0.13.tar.gz
    provides:
      MRO::Compat 0.13
    requirements:

t/files/phases.cpanfile  view on Meta::CPAN

requires 'DateTime';
requires 'JSON::XS';

on 'develop' => sub {
    requires 'Data::Printer';
};

on 'test' => sub {
    requires 'Test::More';
};

t/files/phases.cpanfile.minimum  view on Meta::CPAN

requires 'DateTime', '1.50';
requires 'JSON::XS', '3.04';

on 'develop' => sub {
    requires 'Data::Printer', '0.40';
};

on 'test' => sub {
    requires 'Test::More';
};

t/files/phases.snapshot  view on Meta::CPAN

  File-Which-1.22
    pathname: P/PL/PLICEASE/File-Which-1.22.tar.gz
    provides:
      File::Which 1.22
    requirements:
      ExtUtils::MakeMaker 0
      perl 5.006
  JSON-XS-3.04
    pathname: M/ML/MLEHMANN/JSON-XS-3.04.tar.gz
    provides:
      JSON::XS 3.04
    requirements:
      Canary::Stability 0
      ExtUtils::MakeMaker 6.52
      Types::Serialiser 0
      common::sense 0
  MRO-Compat-0.13
    pathname: H/HA/HAARG/MRO-Compat-0.13.tar.gz
    provides:
      MRO::Compat 0.13
    requirements:

t/files/simple.cpanfile  view on Meta::CPAN

requires 'DateTime';
requires 'JSON::XS';
requires 'Data::Printer';
requires 'Test::More';

t/files/simple.cpanfile.exact  view on Meta::CPAN

requires 'DateTime', '== 1.50';
requires 'JSON::XS', '== 3.04';
requires 'Data::Printer', '== 0.40';
requires 'Test::More';

t/files/simple.cpanfile.maximum  view on Meta::CPAN

requires 'DateTime', '<= 1.50';
requires 'JSON::XS', '<= 3.04';
requires 'Data::Printer', '<= 0.40';
requires 'Test::More';

t/files/simple.cpanfile.minimum  view on Meta::CPAN

requires 'DateTime', '1.50';
requires 'JSON::XS', '3.04';
requires 'Data::Printer', '0.40';
requires 'Test::More';

t/files/simple.snapshot  view on Meta::CPAN

  File-Which-1.22
    pathname: P/PL/PLICEASE/File-Which-1.22.tar.gz
    provides:
      File::Which 1.22
    requirements:
      ExtUtils::MakeMaker 0
      perl 5.006
  JSON-XS-3.04
    pathname: M/ML/MLEHMANN/JSON-XS-3.04.tar.gz
    provides:
      JSON::XS 3.04
    requirements:
      Canary::Stability 0
      ExtUtils::MakeMaker 6.52
      Types::Serialiser 0
      common::sense 0
  MRO-Compat-0.13
    pathname: H/HA/HAARG/MRO-Compat-0.13.tar.gz
    provides:
      MRO::Compat 0.13
    requirements:

t/files/types.cpanfile  view on Meta::CPAN

requires 'DateTime';
recommends 'JSON::XS';
suggests 'Data::Printer';
requires 'Test::More';

t/files/types.cpanfile.exact  view on Meta::CPAN

requires 'DateTime', '== 1.50';
recommends 'JSON::XS';
suggests 'Data::Printer';
requires 'Test::More', '== 0.99';

t/files/types.snapshot  view on Meta::CPAN

  File-Which-1.22
    pathname: P/PL/PLICEASE/File-Which-1.22.tar.gz
    provides:
      File::Which 1.22
    requirements:
      ExtUtils::MakeMaker 0
      perl 5.006
  JSON-XS-3.04
    pathname: M/ML/MLEHMANN/JSON-XS-3.04.tar.gz
    provides:
      JSON::XS 3.04
    requirements:
      Canary::Stability 0
      ExtUtils::MakeMaker 6.52
      Types::Serialiser 0
      common::sense 0
  MRO-Compat-0.13
    pathname: H/HA/HAARG/MRO-Compat-0.13.tar.gz
    provides:
      MRO::Compat 0.13
    requirements:

t/files/versioned.cpanfile  view on Meta::CPAN

requires 'DateTime';
requires 'JSON::XS', 3.00;
requires 'Data::Printer', '== 0.38';
requires 'Test::More', '> 0.9, < 1.0, != 0.98';

t/files/versioned.cpanfile.exact  view on Meta::CPAN

requires 'DateTime', '== 1.50';
requires 'JSON::XS', '== 3.04';
requires 'Data::Printer', '== 0.38';
requires 'Test::More', '== 0.99';

t/files/versioned.cpanfile.maximum  view on Meta::CPAN

requires 'DateTime', '<= 1.50';
requires 'JSON::XS', '>= 3, <= 3.04';
requires 'Data::Printer', '== 0.38';
requires 'Test::More', '> 0.9, <= 0.99, != 0.98';

t/files/versioned.cpanfile.minimum  view on Meta::CPAN

requires 'DateTime', '1.50';
requires 'JSON::XS', '3.04';
requires 'Data::Printer', '== 0.38';
requires 'Test::More', '>= 0.99, < 1.0';

t/files/versioned.snapshot  view on Meta::CPAN

  File-Which-1.22
    pathname: P/PL/PLICEASE/File-Which-1.22.tar.gz
    provides:
      File::Which 1.22
    requirements:
      ExtUtils::MakeMaker 0
      perl 5.006
  JSON-XS-3.04
    pathname: M/ML/MLEHMANN/JSON-XS-3.04.tar.gz
    provides:
      JSON::XS 3.04
    requirements:
      Canary::Stability 0
      ExtUtils::MakeMaker 6.52
      Types::Serialiser 0
      common::sense 0
  MRO-Compat-0.13
    pathname: H/HA/HAARG/MRO-Compat-0.13.tar.gz
    provides:
      MRO::Compat 0.13
    requirements:



( run in 0.609 second using v1.01-cache-2.11-cpan-4d50c553e7e )