|
Lines 17-26
Link Here
|
| 17 |
# You should have received a copy of the GNU General Public License |
17 |
# You should have received a copy of the GNU General Public License |
| 18 |
# along with Koha; if not, see <http://www.gnu.org/licenses>. |
18 |
# along with Koha; if not, see <http://www.gnu.org/licenses>. |
| 19 |
|
19 |
|
| 20 |
use strict; |
20 |
use Modern::Perl; |
| 21 |
use warnings; |
|
|
| 22 |
|
21 |
|
| 23 |
use Test::More tests => 4; |
22 |
use Test::More tests => 5; |
|
|
23 |
use Test::Warn; |
| 24 |
|
24 |
|
| 25 |
BEGIN { |
25 |
BEGIN { |
| 26 |
use_ok('Koha::MetadataRecord'); |
26 |
use_ok('Koha::MetadataRecord'); |
|
Lines 96-98
foreach my $field (@$hash) {
Link Here
|
| 96 |
is_deeply($hash, $samplehash, 'Generated hash correctly'); |
96 |
is_deeply($hash, $samplehash, 'Generated hash correctly'); |
| 97 |
my $dupkeys = grep { $_ > 1 } values %fieldkeys; |
97 |
my $dupkeys = grep { $_ > 1 } values %fieldkeys; |
| 98 |
is($dupkeys, 0, 'No duplicate keys'); |
98 |
is($dupkeys, 0, 'No duplicate keys'); |
| 99 |
- |
99 |
|
|
|
100 |
|
| 101 |
subtest "new() tests" => sub { |
| 102 |
|
| 103 |
plan tests => 12; |
| 104 |
|
| 105 |
# Test default values with a MARC::Record record |
| 106 |
my $record = MARC::Record->new(); |
| 107 |
my $metadata_record = new Koha::MetadataRecord({ |
| 108 |
record => $record |
| 109 |
}); |
| 110 |
|
| 111 |
is( ref($metadata_record), 'Koha::MetadataRecord', 'Type correct'); |
| 112 |
is( ref($metadata_record->record), 'MARC::Record', 'Record type preserved'); |
| 113 |
is( $metadata_record->schema, 'marc21', 'Metadata schema defaults to marc21'); |
| 114 |
is( $metadata_record->format, 'MARC', 'Serializacion format defaults to marc'); |
| 115 |
is( $metadata_record->id, undef, 'id is optional, undef if unspecifid'); |
| 116 |
|
| 117 |
# Test passed values, also no constraint on record type |
| 118 |
my $weird_record = {}; |
| 119 |
bless $weird_record, 'Weird::Class'; |
| 120 |
|
| 121 |
$metadata_record = new Koha::MetadataRecord({ |
| 122 |
record => $weird_record, |
| 123 |
schema => 'something', |
| 124 |
format => 'else', |
| 125 |
id => 'an id' |
| 126 |
}); |
| 127 |
|
| 128 |
is( ref($metadata_record), 'Koha::MetadataRecord', 'Type correct'); |
| 129 |
is( ref($metadata_record->record), 'Weird::Class', 'Record type preserved'); |
| 130 |
is( $metadata_record->schema, 'something', 'Metadata schema correctly set'); |
| 131 |
is( $metadata_record->format, 'else', 'Serializacion format correctly set'); |
| 132 |
is( $metadata_record->id, 'an id', 'The id correctly set'); |
| 133 |
|
| 134 |
# Having a record object is mandatory |
| 135 |
warning_is { $metadata_record = new Koha::MetadataRecord({ |
| 136 |
record => undef, |
| 137 |
schema => 'something', |
| 138 |
format => 'else', |
| 139 |
id => 'an id' |
| 140 |
}) } |
| 141 |
{ carped => 'No record passed' }, |
| 142 |
'Undefined record raises carped warning'; |
| 143 |
|
| 144 |
is( $metadata_record, undef, 'record object mandatory') |
| 145 |
}; |
| 146 |
|
| 147 |
1; |