use warnings;
use strict;

use Test::More;

use_ok 'User::Identity';

my $ui = 'User::Identity';

#
# Empty user
#

my $a = $ui->new();
ok ! defined $a,                             "No empty users";

#
# Test names
#

my $b = $ui->new('mark');
ok defined $b,                               "Create b";
isa_ok($b, $ui);
is $b->name, 'mark',                         "Check b nick";
is $b->fullName, 'Mark',                     "Check b fullname";

my $c = $ui->new(name => 'mark');
ok defined $c,                               "Create c";
isa_ok $c, $ui;
is $c->nickname, 'mark',                     "Check c nick";
is $c->fullName, 'Mark',                     "Check c fullname";
ok !defined $c->gender;
ok !$c->isMale;
ok !$c->isFemale;

my $d = $ui->new('mark', firstname => 'Mark', surname => 'Overmeer', gender => 'male');
ok defined $d,                               "Create d";
is $d->gender, 'male',                       "Check d gender";
ok $d->isMale;
ok !$d->isFemale;
is $d->nickname, 'mark',                     "Check d nick";
is $d->firstname, 'Mark',                    "Check d first";
is $d->fullName, 'Mark Overmeer',            "Check d full";
is $d->formalName, 'Mr. M. Overmeer',        "Check d formal";
is $d->initials, 'M.',                       "Check d initials";

my $e = $ui->new('markov'
 , firstname => 'Mark', surname => 'Overmeer'
 , titles => 'drs.',    initials => 'M.A.C.J.'
 , language => 'nl-NL', charset => 'iso-8859-15'
 , gender => 'male',    birth => 'April 5, 1966'
 );

ok defined $e,                               "Create e";
is $e->nickname, 'markov',                   "Check e nick";
is $e->firstname, 'Mark',                    "Check e first";
is $e->initials, 'M.A.C.J.',                 "Check e initials";
is $e->charset, 'iso-8859-15',               "Check e charset";
is $e->fullName, 'Mark Overmeer',            "Check e full";
is $e->formalName, 'De heer M.A.C.J. Overmeer drs.',  "Check e fullname";
is $e->dateOfBirth, 'April 5, 1966',         "check e birthday";

eval "require Date::Parse";
unless($@)
{	is($e->birth, "19660405",                "check e birth");
	cmp_ok($e->age, '>=', 36,                "check e age");
}

my $f = $ui->new('am',
	firstname => 'Anne-Marie Christina Theodora Pluk',
	prefix => 'van', surname => 'Voorst tot Voorst', gender => 'vrouw'
);

ok defined $e,                               "Create e";
is $f->initials, 'A-M.Chr.Th.P.';
is $f->gender, 'vrouw',                      "Check gender";
is $f->prefix, 'van',                        "Check prefix";
is $f->surname, 'Voorst tot Voorst',         "Check surname";
ok $f->isFemale;
ok !$f->isMale;
is $f->formalName, "Madam A-M.Chr.Th.P. van Voorst tot Voorst";

done_testing;
