1use warnings;
2use strict;
3
4use Test::More tests => 40;
5
6BEGIN { use_ok('User::Identity') };
7
8my $ui = 'User::Identity';
9
10#
11# Empty user
12#
13
14my $a = $ui->new();
15ok(! defined $a,                             "No empty users");
16
17#
18# Test names
19#
20
21my $b = $ui->new('mark');
22ok(defined $b,                               "Create b");
23isa_ok($b, $ui);
24is($b->name, 'mark',                         "Check b nick");
25is($b->fullName, 'Mark',                     "Check b fullname");
26
27my $c = $ui->new(name => 'mark');
28ok(defined $c,                               "Create c");
29isa_ok($c, $ui);
30is($c->nickname, 'mark',                     "Check c nick");
31is($c->fullName, 'Mark',                     "Check c fullname");
32ok(!defined $c->gender);
33ok(!$c->isMale);
34ok(!$c->isFemale);
35
36my $d = $ui->new('mark', firstname => 'Mark', surname => 'Overmeer',
37   gender => 'male');
38ok(defined $d,                               "Create d");
39is($d->gender, 'male',                       "Check d gender");
40ok($d->isMale);
41ok(!$d->isFemale);
42is($d->nickname, 'mark',                     "Check d nick");
43is($d->firstname, 'Mark',                    "Check d first");
44is($d->fullName, 'Mark Overmeer',            "Check d full");
45is($d->formalName, 'Mr. M. Overmeer',        "Check d formal");
46is($d->initials, 'M.',                       "Check d initials");
47
48my $e = $ui->new('markov'
49 , firstname => 'Mark', surname => 'Overmeer'
50 , titles => 'drs.',    initials => 'M.A.C.J.'
51 , language => 'nl-NL', charset => 'iso-8859-15'
52 , gender => 'male',    birth => 'April 5, 1966'
53 );
54
55ok(defined $e,                               "Create e");
56is($e->nickname, 'markov',                   "Check e nick");
57is($e->firstname, 'Mark',                    "Check e first");
58is($e->initials, 'M.A.C.J.',                 "Check e initials");
59is($e->charset, 'iso-8859-15',               "Check e charset");
60is($e->fullName, 'Mark Overmeer',            "Check e full");
61is($e->formalName, 'De heer M.A.C.J. Overmeer drs.',  "Check e fullname");
62is($e->dateOfBirth, 'April 5, 1966',         "check e birthday");
63
64eval "require Date::Parse";
65if($@) {ok(1);ok(1)}
66else
67{  is($e->birth, "19660405",                    "check e birth");
68   cmp_ok($e->age, '>=', 36,                    "check e age");
69}
70
71my $f = $ui->new('am'
72 , firstname => 'Anne-Marie Christina Theodora Pluk'
73 , prefix => 'van', surname => 'Voorst tot Voorst'
74 , gender => 'vrouw'
75 );
76
77ok(defined $e,                               "Create e");
78is($f->initials, 'A-M.Chr.Th.P.');
79is($f->gender, 'vrouw',                      "Check gender");
80is($f->prefix, 'van',                        "Check prefix");
81is($f->surname, 'Voorst tot Voorst',         "Check surname");
82ok($f->isFemale);
83ok(!$f->isMale);
84is($f->formalName, "Madam A-M.Chr.Th.P. van Voorst tot Voorst");
85