#!/usr/bin/perl -w # The script tests Arch::Name methods. use strict; use FindBin; use lib "$FindBin::Bin/../perllib"; use Test::More tests => 21; use_ok("Arch::Name"); my $tree_version = 'migo@homemail.com--Perl-GPL/arch-perl--devel--0'; my @tree_version_items = split('--(?!P)|/', $tree_version); my $tree_version_nan = join('--', @tree_version_items[1 .. 3]); my $name = Arch::Name->new($tree_version); isa_ok($name, 'Arch::Name', "create object"); is($tree_version, $name->to_string, "to_string"); is($tree_version, $name->fqn, "fqn"); is($tree_version_nan, $name->to_nonarch_string, "to_nonarch_string"); is($tree_version_nan, $name->nan, "nan"); my @array = $name->to_array; ok(eq_array(\@array, \@tree_version_items), "to_array"); ok(eq_array([ $name->get ], \@array), "get"); my %hash = $name->to_hash; ok(eq_set([ values %hash ], \@tree_version_items), "to_hash"); is($name->archive, $tree_version_items[0], "archive"); is($name->category, $tree_version_items[1], "category"); is($name->branch, $tree_version_items[2], "branch"); is($name->version, $tree_version_items[3], "version"); is($name->revision, $tree_version_items[4], "revision"); my ($archive, $category, $branch, $version, $revision); $version = $name->clone; isa_ok($version, "Arch::Name", "clone"); is($version->to_string, $tree_version, "clone to_string"); $branch = $version->parent; $archive = $version->parent(3); is($archive->error, undef, "error"); ok($branch->fqn =~ $archive->fqn . "/.+--", "parents"); ok(eq_hash(scalar $branch->parent(2)->to_hash, { $archive->to_hash }), "hash"); is($branch->level, 3, "level num"); is($branch->level(1), "branch", "level name");