3 use Test::More qw(no_plan);
7 use_ok aliased => 'IronMunger::PlaggerLoader';
10 my @names = ('Jess Robinson', 'Justin DeVuyst');
12 my @files = ('my_Jess_Robinson.csv', 'my_Justin_DeVuyst.csv');
14 ok(my $loader = PlaggerLoader->new(dir => 't/csv'), 'build loader');
16 my @target = $loader->_target_files;
18 cmp_ok(@target, '==', 2, '2 files in CSV directory');
21 [ sort map { ($_->splitpath)[-1] } @target ], \@files,
26 my %args = (url => 'http://foo.com', at => '2008-04-06T12:00:00');
28 ok(my $post = $loader->_expand_post(\%args), 'Expand post constructs object');
30 foreach my $key (sort keys %args) {
31 is($post->$key, $args{$key}, "Attribute ${key} ok");
37 url => 'http://jdv79.blogspot.com/2009/05/testable-v007.html',
39 }, qw(2009-05-13T02:45:00 2009-05-14T16:00:00);
41 my $jdv_file = io('t/csv/my_Justin_DeVuyst.csv');
43 my $specs = $loader->_expand_postspecs_from_file($jdv_file);
45 is_deeply($specs, \@postspecs, 'Post specs from file ok');
47 my $posts = $loader->_expand_posts_from_file($jdv_file);
49 cmp_ok(scalar(@$posts), '==', scalar(@postspecs), 'Right number of posts');
51 foreach my $i (0, 1) {
52 my %spec = %{$postspecs[$i]};
53 my $post = $posts->[$i];
54 foreach my $key (sort keys %spec) {
55 is($post->$key, $spec{$key}, "Attribute ${key} ok for post ${i}");
59 my $jdv = $loader->_expand_monger($jdv_file);
61 is($jdv->name, 'Justin DeVuyst', 'Name correct');
62 ok(!$jdv->has_nick, 'No nickname');
63 cmp_ok(@{$jdv->posts}, '==', 2, '2 posts loaded');
65 my @mongers = sort { $a->name cmp $b->name } $loader->mongers;
67 cmp_ok(scalar(@mongers), '==', 2, '2 mongers loaded');
69 foreach my $i (0, 1) {
70 is($mongers[$i]->name, $names[$i], $names[$i].' loaded');