File Coverage

blib/lib/Net/Braintree/CreditCard.pm
Criterion Covered Total %
statement 33 56 58.9
branch 0 2 0.0
condition n/a
subroutine 11 22 50.0
pod 0 11 0.0
total 44 91 48.3


line stmt bran cond sub pod time code
1             package Net::Braintree::CreditCard;
2 1     1   309 use Net::Braintree::CreditCard::CardType;
  1         2  
  1         22  
3 1     1   319 use Net::Braintree::CreditCard::Location;
  1         2  
  1         21  
4 1     1   313 use Net::Braintree::CreditCard::Prepaid;
  1         1  
  1         22  
5 1     1   307 use Net::Braintree::CreditCard::Debit;
  1         1  
  1         20  
6 1     1   318 use Net::Braintree::CreditCard::Payroll;
  1         2  
  1         20  
7 1     1   303 use Net::Braintree::CreditCard::Healthcare;
  1         2  
  1         39  
8 1     1   308 use Net::Braintree::CreditCard::DurbinRegulated;
  1         2  
  1         21  
9 1     1   307 use Net::Braintree::CreditCard::Commercial;
  1         2  
  1         20  
10 1     1   303 use Net::Braintree::CreditCard::CountryOfIssuance;
  1         1  
  1         20  
11 1     1   302 use Net::Braintree::CreditCard::IssuingBank;
  1         2  
  1         19  
12              
13 1     1   3 use Moose;
  1         2  
  1         4  
14             extends 'Net::Braintree::PaymentMethod';
15              
16             my $meta = __PACKAGE__->meta;
17              
18             sub BUILD {
19 0     0 0   my ($self, $attributes) = @_;
20 0           $meta->add_attribute('billing_address', is => 'rw');
21 0 0         $self->billing_address(Net::Braintree::Address->new($attributes->{billing_address})) if ref($attributes->{billing_address}) eq 'HASH';
22 0           delete($attributes->{billing_address});
23 0           $self->set_attributes_from_hash($self, $attributes);
24             }
25              
26             sub create {
27 0     0 0   my ($class, $params) = @_;
28 0           $class->gateway->credit_card->create($params);
29             }
30              
31             sub delete {
32 0     0 0   my ($class, $token) = @_;
33 0           $class->gateway->credit_card->delete($token);
34             }
35              
36             sub update {
37 0     0 0   my($class, $token, $params) = @_;
38 0           $class->gateway->credit_card->update($token, $params);
39             }
40              
41             sub find {
42 0     0 0   my ($class, $token) = @_;
43 0           $class->gateway->credit_card->find($token);
44             }
45              
46             sub from_nonce {
47 0     0 0   my ($class, $nonce) = @_;
48 0           $class->gateway->credit_card->from_nonce($nonce);
49             }
50              
51             sub gateway {
52 0     0 0   Net::Braintree->configuration->gateway;
53             }
54              
55             sub masked_number {
56 0     0 0   my $self = shift;
57 0           return $self->bin . "******" . $self->last_4;
58             }
59              
60             sub expiration_date {
61 0     0 0   my $self = shift;
62 0           return $self->expiration_month . "/" . $self->expiration_year;
63             }
64              
65             sub is_default {
66 0     0 0   return shift->default;
67             }
68              
69             sub is_venmo_sdk {
70 0     0 0   my $self = shift;
71 0           return $self->venmo_sdk;
72             }
73              
74             1;