File Coverage

blib/lib/PayProp/API/Public/Client/Role/Attribute/Storage.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 16 16 100.0


line stmt bran cond sub pod time code
1             package PayProp::API::Public::Client::Role::Attribute::Storage;
2              
3 30     30   510240 use strict;
  30         66  
  30         1377  
4 30     30   179 use warnings;
  30         93  
  30         2134  
5              
6 30     30   737 use Mouse::Role;
  30         1773  
  30         297  
7 30     30   12835 use Mouse::Util::TypeConstraints;
  30         86  
  30         251  
8              
9              
10             subtype 'StorageType'
11             => as (
12             class_type('PayProp::API::Public::Client::Authorization::Storage::Local')
13             | class_type('PayProp::API::Public::Client::Authorization::Storage::Memcached')
14             # | class_type('PayProp::API::Public::Client::Authorization::Storage::***')
15             )
16             ;
17              
18             has storage => (
19             is => 'ro',
20             isa => 'StorageType',
21             lazy => 1,
22             predicate => 'has_storage',
23             default => sub { die 'storage not implemented' },
24             );
25              
26             has storage_key => (
27             is => 'ro',
28             isa => 'Str',
29             lazy => 1,
30             default => sub { die 'storage_key not implemented' },
31             );
32              
33             1;