Text-SimpleVcard
view release on metacpan or search on metacpan
use Test::More 'no_plan';
use Text::SimpleVcard;
my $dat = "BEGIN:VCARD\r\n" .
"VERSION:2.1\r\n" .
"N:Gump;Forrest\r\n" .
"FN:Forrest Gump\r\n" .
"ORG:Bubba Gump Shrimp Co.\r\n" .
"TITLE:Shrimp Man\r\n" .
"TEL;WORK:(111) 555-1212\r\n" .
"TEL;HOME;VOICE:(404) 555-1212\r\n" .
"TEL;CELL:(404) 555-1212\r\n" .
"ADR;WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America\r\n" .
"LABEL;WORK;ENCODING=QUOTED-PRINTABLE:100 Waters Edge=0D=0ABaytown, LA 30314=0D=0AUnited States of America\r\n" .
"ADR;HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America\r\n" .
"LABEL;HOME;ENCODING=QUOTED-PRINTABLE:42 Plantation St.=0D=0ABaytown, LA 30314=0D=0AUnited States of America\r\n" .
"EMAIL;PREF;INTERNET:forrestgump\@example.com\r\n" .
"REV:20080424T195243Z\r\n" .
"END:VCARD\r\n";
my $vCard = Text::SimpleVcard->new( $dat);
my $fullname = $vCard->getFullName();
my $propLBL1 = $vCard->getSimpleValueOfType( 'LABEL', [ 'WORK']);
my $lbl1 = "100 Waters Edge\r\nBaytown, LA 30314\r\nUnited States of America";
my $propLBL2 = $vCard->getSimpleValue( 'LABEL', 1);
my $lbl2 = "42 Plantation St.\r\nBaytown, LA 30314\r\nUnited States of America";
my %h1 = $vCard->getValuesAsHash( 'TEL', [qw( WORK HOME)]);
my %h2 = $vCard->getValuesAsHash( 'TEL');
ok( defined $vCard, 'new() returning something');
ok( $vCard->isa( 'Text::SimpleVcard'), 'new() returning hash-reference of type SimpleVcard');
is( keys %$vCard, 10, 'new() returning correct count of properties');
is( $fullname, 'Forrest Gump', 'getFullName() returning correct fullname');
is( $propLBL1, $lbl1, 'getsimpleValue() with in-range-index');
is( $propLBL2, $lbl2, 'getsimpleValue() with in-range-index');
is( scalar( keys %h1), 2, 'getValuesAsHash() returning correct count of properties (1)');
is( scalar( keys %h2), 2, 'getValuesAsHash() returning correct count of properties (2)');
is( $h1{ '(404) 555-1212'}, 'HOME', 'getValuesAsHash() returning correct types');
is( $h1{ '(111) 555-1212'}, 'WORK', 'getValuesAsHash() returning correct types');
is( $h1{ '(0815) 9876543'}, undef, 'getValuesAsHash() returning correct types');
is( $h2{ '(404) 555-1212'}, 'HOME,VOICE,CELL', 'getValuesAsHash() returning correct types when no types provided');
( run in 1.798 second using v1.01-cache-2.11-cpan-5fbc6bb55f2 )