File Coverage: blib/lib/MySQL/Util/Lite/ForeignKey.pm

# File Coverage

File: | blib/lib/MySQL/Util/Lite/ForeignKey.pm
Coverage: | 97.2%

line | stmt | bran | cond | sub | code
--- | --- | --- | --- | --- | ---
1 |  |  |  |  | package MySQL::Util::Lite::ForeignKey;
2 |
3 |  |  |  |  | our $VERSION = '0.01';
4 |
5 | 1 1 1 |  |  | 1 | use Modern::Perl;
6 | 1 1 1 |  |  | 1 | use Moose;
7 | 1 1 1 |  |  | 1 | use namespace::autoclean;
8 | 1 1 1 |  |  | 1 | use Method::Signatures;
9 | 1 1 1 |  |  | 1 | use Data::Printer alias => 'pdump';
10 | 1 1 1 |  |  | 1 | use MySQL::Util::Lite::ForeignKeyColumn;
11 |
12 |  |  |  |  | has name => (
13 |  |  |  |  | is => 'ro',
14 |  |  |  |  | isa => 'Str',
15 |  |  |  |  | required => 1,
16 |  |  |  |  | );
17 |
18 |  |  |  |  | has schema_name => (
19 |  |  |  |  | is => 'ro',
20 |  |  |  |  | isa => 'Str',
21 |  |  |  |  | required => 1,
22 |  |  |  |  | );
23 |
24 |  |  |  |  | has _util => (
25 |  |  |  |  | is => 'ro',
26 |  |  |  |  | isa => 'MySQL::Util',
27 |  |  |  |  | required => 1,
28 |  |  |  |  | );
29 |
30 | 1 10 10 | 50 |  | 1 10 | method get_columns {
31 |
32 | 10 |  |  |  | my $aref = $self->_util->get_constraint(
33 |  |  |  |  | name => $self->name
34 |  |  |  |  | );
35 |
36 | 10 |  |  |  | my @cols;
37 |
38 | 10 |  |  |  | foreach my $col (@$aref) {
39 | 10 |  |  |  | push @cols, MySQL::Util::Lite::ForeignKeyColumn->new(
40 |  |  |  |  | name => $col->{COLUMN_NAME},
41 |  |  |  |  | table_name => $col->{TABLE_NAME},
42 |  |  |  |  | schema_name => $col->{CONSTRAINT_SCHEMA},
43 |  |  |  |  | parent_column_name => $col->{REFERENCED_COLUMN_NAME},
44 |  |  |  |  | parent_table_name => $col->{REFERENCED_TABLE_NAME},
45 |  |  |  |  | parent_schema_name => $col->{REFERENCED_TABLE_SCHEMA},
46 |  |  |  |  | );
47 |
48 |  |  |  |  | }
49 |
50 | 10 |  |  |  | return @cols;
51 |  |  |  |  | }
52 |
53 |  |  |  |  | 1;