File Coverage

lib/Catan/Event/YearOfPlenty.pm
Criterion Covered Total %
statement 26 26 100.0
branch 2 4 50.0
condition 2 6 33.3
subroutine 8 8 100.0
pod 0 2 0.0
total 38 46 82.6


line stmt bran cond sub pod time code
1             package Catan::Event::YearOfPlenty;
2             $Catan::Event::YearOfPlenty::VERSION = '0.03';
3 2     2   11 use strict;
  2     1   5  
  2         62  
  1         751  
  1         2  
  1         20  
4 2     2   13 use warnings;
  2     1   4  
  2         69  
  1         5  
  1         2  
  1         25  
5 2     2   11 use List::Util 'sum';
  2     1   4  
  2         436  
  1         5  
  1         2  
  1         218  
6              
7 1     1 0 4 sub new { bless {}, shift }
8              
9             sub validate
10             {
11 1     1 0 3 my ($self, $trade) = @_;
12 1 50 33     15 die 'calculate requires a trade argument'
13             unless $trade && $trade->isa('Catan::Game::Trade');;
14              
15             die 'YearOfPlenty only permits up to 2 resources to be taken for 1 player'
16 1 50 33     2 unless 2 == @{$trade->players} && -2 == sum map {$_->amount} @{$trade->resources('bank')};
  1         4  
  2         5  
  1         3  
17 1         2 return 1;
18             }
19             1;
20              
21             __END__