Bug 11844: Add tests
Tests added for: - Koha::AdditionalField - TransferOrder - marcfield_mode Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
d880e7d8a1
commit
95421d0611
4 changed files with 211 additions and 1 deletions
|
@ -1,6 +1,7 @@
|
|||
package Koha::Object::Mixin::AdditionalFields;
|
||||
|
||||
use Modern::Perl;
|
||||
use Koha::AdditionalFields;
|
||||
use Koha::AdditionalFieldValues;
|
||||
|
||||
=head1 NAME
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
use Modern::Perl;
|
||||
|
||||
use Test::More tests => 13;
|
||||
use Test::More tests => 14;
|
||||
use C4::Context;
|
||||
use C4::Acquisition qw( NewBasket GetOrders GetOrder TransferOrder SearchOrders ModReceiveOrder CancelReceipt );
|
||||
use C4::Biblio;
|
||||
|
@ -14,6 +14,7 @@ use Koha::Acquisition::Booksellers;
|
|||
use Koha::Acquisition::Orders;
|
||||
use t::lib::TestBuilder;
|
||||
use MARC::Record;
|
||||
use String::Random qw(random_string);
|
||||
|
||||
my $schema = Koha::Database->new()->schema();
|
||||
$schema->storage->txn_begin();
|
||||
|
@ -110,4 +111,39 @@ $order = GetOrder( $newordernumber );
|
|||
is ( $order->{ordernumber}, $newordernumber, 'Regression test Bug 11549: After a transfer, receive and cancel the receive should be possible.' );
|
||||
is ( $order->{basketno}, $basketno2, 'Regression test Bug 11549: The order still exist in the basket where the transfer has been done.');
|
||||
|
||||
subtest 'TransferOrder should copy additional fields' => sub {
|
||||
plan tests => 2;
|
||||
|
||||
my $field = Koha::AdditionalField->new(
|
||||
{
|
||||
tablename => 'aqorders',
|
||||
name => random_string('c' x 100),
|
||||
}
|
||||
);
|
||||
$field->store()->discard_changes();
|
||||
my $order = Koha::Acquisition::Order->new(
|
||||
{
|
||||
basketno => $basketno1,
|
||||
quantity => 2,
|
||||
biblionumber => $biblionumber,
|
||||
budget_id => $budget->{budget_id},
|
||||
}
|
||||
)->store;
|
||||
$order->set_additional_fields(
|
||||
[
|
||||
{
|
||||
id => $field->id,
|
||||
value => 'additional field value',
|
||||
},
|
||||
]
|
||||
);
|
||||
|
||||
my $newordernumber = TransferOrder($order->ordernumber, $basketno2);
|
||||
my $neworder = Koha::Acquisition::Orders->find($newordernumber);
|
||||
my $field_values = $neworder->additional_field_values()->as_list;
|
||||
|
||||
is(scalar @$field_values, 1, 'transfered order has one additional field value');
|
||||
is($field_values->[0]->value, 'additional field value', 'transfered order additional field has the correct value');
|
||||
};
|
||||
|
||||
$schema->storage->txn_rollback();
|
||||
|
|
82
t/db_dependent/Koha/AdditionalField.t
Executable file
82
t/db_dependent/Koha/AdditionalField.t
Executable file
|
@ -0,0 +1,82 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use Modern::Perl;
|
||||
|
||||
use Test::More tests => 2;
|
||||
use String::Random qw(random_string);
|
||||
|
||||
use Koha::AuthorisedValueCategory;
|
||||
|
||||
BEGIN {
|
||||
use_ok('Koha::AdditionalField');
|
||||
}
|
||||
|
||||
my $schema = Koha::Database->schema;
|
||||
|
||||
subtest 'effective_authorised_value_category' => sub {
|
||||
plan tests => 4;
|
||||
|
||||
$schema->txn_begin;
|
||||
|
||||
my $av_category_name = random_string('C' x 32);
|
||||
my $av_category = Koha::AuthorisedValueCategory->new({ category_name => $av_category_name });
|
||||
$av_category->store()->discard_changes();
|
||||
|
||||
my $field = Koha::AdditionalField->new(
|
||||
{
|
||||
tablename => random_string('c' x 100),
|
||||
name => random_string('c' x 100),
|
||||
}
|
||||
);
|
||||
$field->store()->discard_changes();
|
||||
|
||||
is($field->effective_authorised_value_category, '', 'no default category');
|
||||
|
||||
$field = Koha::AdditionalField->new(
|
||||
{
|
||||
tablename => random_string('c' x 100),
|
||||
name => random_string('c' x 100),
|
||||
authorised_value_category => $av_category_name,
|
||||
}
|
||||
);
|
||||
$field->store()->discard_changes();
|
||||
|
||||
is($field->effective_authorised_value_category, $av_category_name, 'returns authorised_value_category if set');
|
||||
|
||||
my $mss = Koha::MarcSubfieldStructure->new(
|
||||
{
|
||||
frameworkcode => '',
|
||||
tagfield => '999',
|
||||
tagsubfield => 'Z',
|
||||
authorised_value => $av_category_name,
|
||||
}
|
||||
);
|
||||
$mss->store();
|
||||
$field = Koha::AdditionalField->new(
|
||||
{
|
||||
tablename => random_string('c' x 100),
|
||||
name => random_string('c' x 100),
|
||||
marcfield => '999$Z',
|
||||
}
|
||||
);
|
||||
$field->store()->discard_changes();
|
||||
|
||||
is($field->effective_authorised_value_category, $av_category_name, 'returns MARC subfield authorised value category if set');
|
||||
|
||||
my $av2_category_name = random_string('C' x 32);
|
||||
my $av2_category = Koha::AuthorisedValueCategory->new({ category_name => $av2_category_name });
|
||||
$av2_category->store()->discard_changes();
|
||||
$field = Koha::AdditionalField->new(
|
||||
{
|
||||
tablename => random_string('c' x 100),
|
||||
name => random_string('c' x 100),
|
||||
authorised_value_category => $av2_category_name,
|
||||
marcfield => '999$Z',
|
||||
}
|
||||
);
|
||||
$field->store()->discard_changes();
|
||||
|
||||
is($field->effective_authorised_value_category, $av2_category_name, 'returns authorised_value_category if both authorised_value_category and marcfield are set');
|
||||
|
||||
$schema->txn_rollback;
|
||||
};
|
91
t/db_dependent/Koha/Object/Mixin/AdditionalFields.t
Executable file
91
t/db_dependent/Koha/Object/Mixin/AdditionalFields.t
Executable file
|
@ -0,0 +1,91 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use Modern::Perl;
|
||||
use Test::More tests => 2;
|
||||
use t::lib::TestBuilder;
|
||||
use String::Random qw(random_string);
|
||||
use Koha::Database;
|
||||
use Koha::Subscription;
|
||||
use Koha::AdditionalField;
|
||||
use C4::Context;
|
||||
|
||||
my $builder = t::lib::TestBuilder->new;
|
||||
my $schema = Koha::Database->schema;
|
||||
|
||||
subtest 'set_additional_fields with marcfield_mode = "get"' => sub {
|
||||
plan tests => 1;
|
||||
|
||||
$schema->txn_begin;
|
||||
|
||||
my $biblio = $builder->build_sample_biblio();
|
||||
my $record = $biblio->record;
|
||||
$record->append_fields(
|
||||
MARC::Field->new('999', '', '', 'Z' => 'some value'),
|
||||
);
|
||||
$biblio->metadata->metadata($record->as_xml_record(C4::Context->preference('marcflavour')));
|
||||
$biblio->metadata->store()->discard_changes();
|
||||
my $subscription = Koha::Subscription->new(
|
||||
{
|
||||
biblionumber => $biblio->biblionumber,
|
||||
}
|
||||
);
|
||||
$subscription->store()->discard_changes();
|
||||
|
||||
my $field = Koha::AdditionalField->new(
|
||||
{
|
||||
tablename => 'subscription',
|
||||
name => random_string('c' x 100),
|
||||
marcfield => '999$Z',
|
||||
marcfield_mode => 'get',
|
||||
}
|
||||
);
|
||||
$field->store()->discard_changes();
|
||||
$subscription->set_additional_fields(
|
||||
[
|
||||
{ id => $field->id },
|
||||
]
|
||||
);
|
||||
|
||||
my $values = $subscription->additional_field_values()->as_list();
|
||||
|
||||
is($values->[0]->value, 'some value', 'value was copied from the biblio record to the field');
|
||||
|
||||
$schema->txn_rollback;
|
||||
};
|
||||
|
||||
subtest 'set_additional_fields with marcfield_mode = "set"' => sub {
|
||||
plan tests => 1;
|
||||
|
||||
$schema->txn_begin;
|
||||
|
||||
my $biblio = $builder->build_sample_biblio();
|
||||
my $subscription = Koha::Subscription->new(
|
||||
{
|
||||
biblionumber => $biblio->biblionumber,
|
||||
}
|
||||
);
|
||||
$subscription->store()->discard_changes();
|
||||
|
||||
my $field = Koha::AdditionalField->new(
|
||||
{
|
||||
tablename => 'subscription',
|
||||
name => random_string('c' x 100),
|
||||
marcfield => '999$Z',
|
||||
marcfield_mode => 'set',
|
||||
}
|
||||
);
|
||||
$field->store()->discard_changes();
|
||||
$subscription->set_additional_fields(
|
||||
[
|
||||
{
|
||||
id => $field->id,
|
||||
value => 'some value',
|
||||
},
|
||||
]
|
||||
);
|
||||
|
||||
my $record = $biblio->record;
|
||||
is($record->subfield('999', 'Z'), 'some value', 'value was copied from the field to the biblio record');
|
||||
|
||||
$schema->txn_rollback;
|
||||
};
|
Loading…
Reference in a new issue