#!/usr/bin/perl -w

# The script tests Arch::Name overloaded operators.

use strict;

use FindBin;
use lib "$FindBin::Bin/../perllib";

use Test::More tests => 18;
use_ok("Arch::Name");

my $archive = 'my@arch.com--public';
my $category = 'my-category';

my $name = Arch::Name->new($archive);
isa_ok($name, "Arch::Name",        "new with archive");
is("$name", $archive,              "stringify");

$name += $category;
isa_ok($name, "Arch::Name",        "add category");
is($name->level, 2,                "level");
is($name->category, $category,     "category");

$name--;
isa_ok($name, "Arch::Name",        "remove category");
is($name->level, 1,                "level");

$name = $name + $category + "my-branch";
isa_ok($name, "Arch::Name",        "add category and branch");
is($name->error, undef,            "error");
is(int($name), 3,                  "int");
ok($name? 1: 0,                    "bool");

$name += "invalid-version";
isa_ok($name, "Arch::Name",        "add invalid version");
isnt($name->error, undef,          "error");
is(int($name), 3,                  "int");

$name -= 3;
isa_ok($name, "Arch::Name",        "remove 3 levels");
is($name->level, 0,                "level");
ok($name? 0: 1,                    "bool");
