Bugzilla – Attachment 23347 Details for
Bug 11224
C4::Acquisition need more UT, and more robust ones.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 11224 : Add UT to subs of C4::Acquisition returning order(s)
0001-Bug-11224-Add-UT-to-subs-of-C4-Acquisition-returning.patch (text/plain), 26.00 KB, created by
Mathieu Saby
on 2013-12-07 13:16:15 UTC
(
hide
)
Description:
Bug 11224 : Add UT to subs of C4::Acquisition returning order(s)
Filename:
MIME Type:
Creator:
Mathieu Saby
Created:
2013-12-07 13:16:15 UTC
Size:
26.00 KB
patch
obsolete
>From cdce948fbae77a56e178f64e9f904453520f240f Mon Sep 17 00:00:00 2001 >From: Mathieu Saby <mathieu.saby@univ-rennes2.fr> >Date: Sat, 9 Nov 2013 14:28:07 +0100 >Subject: [PATCH] Bug 11224 : Add UT to subs of C4::Acquisition returning order(s) > >[Patch rebased the integration of Bug 11111] > >C4::Acquisition need more UT, and more robust ones. > >This patch adds UT to >- GetOrder >- GetOrders >- GetCancelledOrders >- GetLateOrders >It refactors UT for SearchOrders > >New UT use 2 new subs, used for check the list of fields returns by a sub. >_check_fields_of_order >_check_fields_of_orders >These 2 subs could later be used by other UT > >_check_fields_of_order has its own UT (tests n°14,15,16). They should maybe be commented after this patch is QAed. > >to test : >prove t/db_dependent/Acquisition.t -v > >Signed-off-by: Liz Rea <liz@catalyst.net.nz> >Unit tests pass, passes koha-qa. > >Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> >Passes koha-qa and t >--- > C4/Acquisition.pm | 1 + > t/db_dependent/Acquisition.t | 600 ++++++++++++++++++++++++++++++++++++------ > 2 files changed, 517 insertions(+), 84 deletions(-) > >diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm >index dc090b8..02f660e 100644 >--- a/C4/Acquisition.pm >+++ b/C4/Acquisition.pm >@@ -1034,6 +1034,7 @@ biblio, and biblioitems tables in the Koha database. > > sub GetOrders { > my ( $basketno, $orderby ) = @_; >+ return () unless $basketno; > my $dbh = C4::Context->dbh; > my $query =" > SELECT biblio.*,biblioitems.*, >diff --git a/t/db_dependent/Acquisition.t b/t/db_dependent/Acquisition.t >index 2585802..671332e 100755 >--- a/t/db_dependent/Acquisition.t >+++ b/t/db_dependent/Acquisition.t >@@ -8,7 +8,7 @@ use POSIX qw(strftime); > > use C4::Bookseller qw( GetBookSellerFromId ); > >-use Test::More tests => 62; >+use Test::More tests => 64; > > BEGIN { > use_ok('C4::Acquisition'); >@@ -18,10 +18,66 @@ BEGIN { > use_ok('C4::Bookseller'); > } > >+# Sub used for testing C4::Acquisition subs returning order(s) : GetOrdersByStatus,GetOrders, GetDeletedOrders, GetOrder etc. >+# (\@test_missing_fields,\@test_extra_fields,\@test_different_fields,$test_nbr_fields) = _check_fields_of_order ($exp_fields, $original_order_content, $order_to_check); >+# params : >+# $exp_fields : arrayref whose elements are the keys we expect to find >+# $original_order_content : hashref whose 2 keys str and num contains hashrefs containing content fields of the order created with NewOrder >+# $order_to_check : hashref whose keys/values are the content of an order returned by the C4::Acquisition sub we are testing >+# returns : >+# \@test_missing_fields : arrayref void if ok ; otherwise contains the list of fields missing in $order_to_check >+# \@test_extra_fields : arrayref void if ok ; otherwise contains the list of fields unexpected in $order_to_check >+# \@test_different_fields : arrayref void if ok ; otherwise contains the list of fields which value is not the same in between $order_to_check and >+# $test_nbr_fields : contains the number of fields of $order_to_check >+ >+sub _check_fields_of_order { >+ my ($exp_fields, $original_order_content, $order_to_check) = @_; >+ my @test_missing_fields = (); >+ my @test_extra_fields = (); >+ my @test_different_fields = (); >+ my $test_nbr_fields = scalar (keys %$order_to_check); >+ foreach my $field ( @$exp_fields ) { >+ push @test_missing_fields, $field unless exists( $order_to_check->{ $field }); >+ } >+ foreach my $field ( keys %$order_to_check) { >+ push @test_extra_fields, $field unless grep (/^$field$/, @$exp_fields); >+ } >+ foreach my $field ( keys %{$original_order_content->{str}}) { >+ push @test_different_fields, $field unless (! exists $order_to_check->{ $field }) or ($original_order_content->{str}->{$field} eq $order_to_check->{ $field }); >+ } >+ foreach my $field ( keys %{$original_order_content->{num}}) { >+ push @test_different_fields, $field unless (! exists $order_to_check->{ $field }) or ($original_order_content->{num}->{$field} == $order_to_check->{ $field }); >+ } >+ return ( \@test_missing_fields,\@test_extra_fields,\@test_different_fields,$test_nbr_fields); >+} >+ >+# Sub used for testing C4::Acquisition subs returning several orders >+# (\@test_missing_fields,\@test_extra_fields,\@test_different_fields,\@test_nbr_fields) = _check_fields_of_orders ($exp_fields, $original_orders_content, $orders_to_check) >+sub _check_fields_of_orders { >+ my ($exp_fields, $original_orders_content, $orders_to_check) = @_; >+ my @test_missing_fields = (); >+ my @test_extra_fields = (); >+ my @test_different_fields = (); >+ my @test_nbr_fields = (); >+ foreach my $order_to_check (@$orders_to_check ) { >+ my $original_order_content = (grep {$_->{str}->{ordernumber} eq $order_to_check-> {ordernumber}} @$original_orders_content)[0]; >+ my ($t_missing_fields,$t_extra_fields,$t_different_fields,$t_nbr_fields) = _check_fields_of_order ($exp_fields,$original_order_content,$order_to_check); >+ push @test_missing_fields, @$t_missing_fields; >+ push @test_extra_fields, @$t_extra_fields; >+ push @test_different_fields, @$t_different_fields; >+ push @test_nbr_fields, $t_nbr_fields; >+ } >+ @test_missing_fields = keys %{{map {$_ => 1} @test_missing_fields}}; >+ @test_extra_fields = keys %{{map {$_ => 1} @test_extra_fields}}; >+ @test_different_fields = keys %{{map {$_ => 1} @test_different_fields}}; >+ return (\@test_missing_fields,\@test_extra_fields,\@test_different_fields,\@test_nbr_fields); >+} >+ > my $dbh = C4::Context->dbh; > $dbh->{AutoCommit} = 0; > $dbh->{RaiseError} = 1; > >+# Creating some orders > my $booksellerid = C4::Bookseller::AddBookseller( > { > name => "my vendor", >@@ -48,92 +104,483 @@ my $budgetid = C4::Budgets::AddBudget( > ); > my $budget = C4::Budgets::GetBudget( $budgetid ); > >-my ($ordernumber1, $ordernumber2, $ordernumber3); >+my @ordernumbers; > my ($biblionumber1, $biblioitemnumber1) = AddBiblio(MARC::Record->new, ''); > my ($biblionumber2, $biblioitemnumber2) = AddBiblio(MARC::Record->new, ''); >-( undef, $ordernumber1 ) = C4::Acquisition::NewOrder( >- { >+my ($biblionumber3, $biblioitemnumber3) = AddBiblio(MARC::Record->new, ''); >+my ($biblionumber4, $biblioitemnumber4) = AddBiblio(MARC::Record->new, ''); >+ >+ >+# >+# Test NewOrder >+# >+ >+my ($mandatoryparams, $return_error,$basketnum); >+ >+# returns undef and croaks if basketno, quantity, biblionumber or budget_id is missing >+eval {($basketnum, $ordernumbers[0] ) = C4::Acquisition::NewOrder()}; >+$return_error = $@; >+ok ((!(defined $basketnum || defined $ordernumbers[0])) && (defined $return_error),"NewOrder with no params returns undef and croaks"); >+ >+$mandatoryparams = { >+ basketno => $basketno, >+ quantity => 24, >+ biblionumber => $biblionumber1, >+ budget_id => $budget->{budget_id}, >+ }; >+my @mandatoryparams_keys = keys %$mandatoryparams; >+foreach my $mandatoryparams_key (@mandatoryparams_keys) { >+ my %test_missing_mandatoryparams = %$mandatoryparams; >+ delete $test_missing_mandatoryparams {$mandatoryparams_key}; >+ eval {($basketnum, $ordernumbers[0] ) = C4::Acquisition::NewOrder(\%test_missing_mandatoryparams)}; >+ $return_error = $@; >+ my $expected_error = "Mandatory parameter $mandatoryparams_key missing"; >+ ok ((!(defined $basketnum || defined $ordernumbers[0])) && ( index ($return_error, $expected_error) >=0 ),"NewOrder with no $mandatoryparams_key returns undef and croaks with expected error message"); >+} >+ >+# FIXME to do : test the other features of NewOrder >+ >+# Prepare 5 orders, and make distinction beween fields to be tested with eq and with == >+# Ex : a price of 50.1 will be stored internally as 5.100000 >+ >+my @order_content = ( >+ {str => { > basketno => $basketno, >- quantity => 24, > biblionumber => $biblionumber1, > budget_id => $budget->{budget_id}, >- } >-); >- >-( undef, $ordernumber2 ) = C4::Acquisition::NewOrder( >- { >+ uncertainprice=>0, >+ notes=>"some notes", >+ }, >+ num => { >+ quantity => 24, >+ listprice=>50.121111, >+ ecost => 38.15, >+ rrp => 40.15, >+ discount =>5.1111, >+ gstrate=>0.0515 >+ }}, >+ {str => { > basketno => $basketno, >- quantity => 42, > biblionumber => $biblionumber2, >- budget_id => $budget->{budget_id}, >- } >-); >- >-( undef, $ordernumber3 ) = C4::Acquisition::NewOrder( >- { >+ budget_id => $budget->{budget_id} >+ }, >+ num => { >+ quantity => 42 >+ }}, >+ {str => { > basketno => $basketno, >- quantity => 4, > biblionumber => $biblionumber2, > budget_id => $budget->{budget_id}, >- ecost => 42, >+ uncertainprice=>0, >+ notes=>"ordernotes" >+ }, >+ num =>{ >+ quantity => 4, >+ ecost => 42.1, >+ rrp => 42.1, >+ listprice=>10.1, >+ ecost => 38.1, >+ rrp => 11.0, >+ discount =>5.1, >+ gstrate=>0.1 >+ }}, >+ {str =>{ >+ basketno => $basketno, >+ biblionumber => $biblionumber3, >+ budget_id => $budget->{budget_id}, >+ notes=>"ordernotes" >+ }, >+ num => { >+ quantity => 4, >+ ecost => 40, > rrp => 42, >- } >+ listprice=>10, >+ ecost => 38.15, >+ rrp => 11.00, >+ discount =>0, >+ uncertainprice=>0, >+ gstrate=>0 >+ }}, >+ {str =>{ >+ basketno => $basketno, >+ biblionumber => $biblionumber4, >+ budget_id => $budget->{budget_id}, >+ notes=>"ordernotes" >+ }, >+ num => { >+ quantity => 1, >+ ecost => 10, >+ rrp => 10, >+ listprice=>10, >+ ecost => 10, >+ rrp => 10, >+ discount =>0, >+ uncertainprice=>0, >+ gstrate=>0 >+ }} >+ ); >+ >+# Create 4 orders in database >+for (0..4) { >+ my %ocontent ; >+ @ocontent { keys %{$order_content[$_]->{num}} } = values %{$order_content[$_]->{num}}; >+ @ocontent { keys %{$order_content[$_]->{str}} } = values %{$order_content[$_]->{str}}; >+ ( undef, $ordernumbers[$_] ) = C4::Acquisition::NewOrder(\%ocontent); >+ $order_content[$_]->{str}->{ordernumber} = $ordernumbers[$_]; >+} >+ >+ >+# Test UT sub _check_fields_of_order >+ >+my ($test_missing_fields,$test_extra_fields,$test_different_fields,$test_nbr_fields) = _check_fields_of_order ([qw /a b c d e/], {str=>{a=>"bla",b=>"105"},num=>{c=>15.12}}, {a=>"blabla",f=>"f",b=>"105",c=>15.1200,g=>''}); >+ok ((($test_nbr_fields == 5) and (join (" ",sort @$test_missing_fields) eq 'd e') and (join (" ",sort @$test_extra_fields) eq 'f g') and (join(" ",@$test_different_fields) eq 'a')), "_check_fields_of_order can check an order (test 1)"); >+($test_missing_fields,$test_extra_fields,$test_different_fields,$test_nbr_fields) = _check_fields_of_order ([qw /a b c /], {str=>{a=>"bla",b=>"105"},num=>{c=>15.00}}, {a=>"bla",b=>"105",c=>15}); >+ok ((($test_nbr_fields == 3) and (scalar @$test_missing_fields == 0) and (scalar @$test_extra_fields == 0) and (scalar @$test_different_fields == 0)) , "_check_fields_of_order can check an order (test 2)"); >+($test_missing_fields,$test_extra_fields,$test_different_fields,$test_nbr_fields) = _check_fields_of_order ([qw /a b c d e/], {str=>{a=>"bla",b=>"105"},num=>{c=>15.12}}, {a=>"blabla",b=>"105",c=>15,d=>"error"}); >+ok ((($test_nbr_fields == 4) and (join (" ",sort @$test_missing_fields) eq 'e') and (scalar @$test_extra_fields == 0) and (join(" ",@$test_different_fields) eq 'a c')) , "_check_fields_of_order can check an order (test 3)"); >+ >+ >+# >+# test GetOrder >+# >+ >+my @expectedfields = qw( >+ ordernumber >+ biblionumber >+ entrydate >+ quantity >+ currency >+ listprice >+ totalamount >+ datereceived >+ invoiceid >+ freight >+ unitprice >+ quantityreceived >+ cancelledby >+ datecancellationprinted >+ notes >+ supplierreference >+ purchaseordernumber >+ basketno >+ timestamp >+ rrp >+ ecost >+ unitpricesupplier >+ unitpricelib >+ gstrate >+ discount >+ budget_id >+ budgetgroup_id >+ budgetdate >+ sort1 >+ sort2 >+ sort1_authcat >+ sort2_authcat >+ uncertainprice >+ claims_count >+ claimed_date >+ subscriptionid >+ parent_ordernumber >+ orderstatus >+ title >+ author >+ basketname >+ branchcode >+ publicationyear >+ copyrightdate >+ editionstatement >+ isbn >+ ean >+ seriestitle >+ publishercode >+ publisher >+ budget >+ supplier >+ supplierid >+ estimateddeliverydate >+ orderdate >+ quantity_to_receive >+ subtotal >+ latesince >+ ); >+($test_missing_fields,$test_extra_fields,$test_different_fields,$test_nbr_fields) = _check_fields_of_order (\@expectedfields , $order_content[0], GetOrder($ordernumbers[0])); >+is($test_nbr_fields,scalar @expectedfields , "GetOrder gets an order with the right number of fields" ); >+is(join (" ",@$test_missing_fields),'', "GetOrder gets an order with no missing fields" ); >+is(join (" ",@$test_extra_fields),'', "GetOrder gets an order with no unexpected fields" ); >+is(join (" ",@$test_different_fields),'', "GetOrder gets an order with the right content in every fields" ); >+ >+# >+# Test GetOrders >+# >+ >+my @base_expectedfields = qw( >+ ordernumber >+ ecost >+ uncertainprice >+ marc >+ cancelledby >+ url >+ isbn >+ copyrightdate >+ serial >+ cn_suffix >+ cn_item >+ marcxml >+ freight >+ cn_class >+ title >+ pages >+ budget_encumb >+ budget_name >+ number >+ itemtype >+ totalissues >+ author >+ budget_permission >+ parent_ordernumber >+ size >+ claims_count >+ currency >+ seriestitle >+ timestamp >+ editionstatement >+ budget_parent_id >+ publishercode >+ unitprice >+ collectionvolume >+ budget_amount >+ budget_owner_id >+ datecreated >+ claimed_date >+ subscriptionid >+ editionresponsibility >+ sort2 >+ notes >+ volumedate >+ budget_id >+ illus >+ ean >+ biblioitemnumber >+ datereceived >+ orderstatus >+ supplierreference >+ agerestriction >+ budget_branchcode >+ gstrate >+ listprice >+ budget_code >+ budgetdate >+ basketno >+ discount >+ abstract >+ collectionissn >+ publicationyear >+ collectiontitle >+ invoiceid >+ budgetgroup_id >+ place >+ issn >+ quantityreceived >+ entrydate >+ cn_source >+ sort1_authcat >+ budget_notes >+ biblionumber >+ unititle >+ sort2_authcat >+ budget_expend >+ rrp >+ cn_sort >+ totalamount >+ lccn >+ sort1 >+ volume >+ purchaseordernumber >+ quantity >+ budget_period_id >+ frameworkcode >+ volumedesc >+ datecancellationprinted >+ ); >+@expectedfields = (@base_expectedfields, ('transferred_from_timestamp','transferred_from')); >+is(GetOrders(),undef,"GetOrders with no params returns undef"); >+DelOrder ($order_content[3]->{str}->{biblionumber},$ordernumbers[3]); >+my @get_orders = GetOrders($basketno); >+($test_missing_fields,$test_extra_fields,$test_different_fields,$test_nbr_fields) = _check_fields_of_orders (\@expectedfields , \@order_content, \@get_orders); >+is($$test_nbr_fields [0],scalar @expectedfields , "GetOrders gets orders with the right number of fields" ); >+is(join (" ",@$test_missing_fields),'', "GetOrders gets orders with no missing fields" ); >+is(join (" ",@$test_extra_fields),'', "GetOrders gets orders with no unexpected fields" ); >+is(join (" ",@$test_different_fields),'', "GetOrders gets orders with the right content in every fields" ); >+ok(((scalar @get_orders == 4) and !grep ($_->{ordernumber} eq $ordernumbers[3], @get_orders)),"GetOrders only gets non-cancelled orders" ); >+ >+# >+# Test GetCancelledOrders >+# >+ >+@expectedfields = (@base_expectedfields, ('transferred_to_timestamp','transferred_to')); >+is(GetCancelledOrders(),undef,"GetCancelledOrders with no params returns undef"); >+@get_orders = GetCancelledOrders($basketno); >+($test_missing_fields,$test_extra_fields,$test_different_fields,$test_nbr_fields) = _check_fields_of_orders (\@expectedfields , \@order_content, \@get_orders); >+is($$test_nbr_fields [0],scalar @expectedfields , "GetCancelledOrders gets orders with the right number of fields" ); >+is(join (" ",@$test_missing_fields),'', "GetCancelledOrders gets orders with no missing fields" ); >+is(join (" ",@$test_extra_fields),'', "GetCancelledOrders gets orders with no unexpected fields" ); >+is(join (" ",@$test_different_fields),'', "GetCancelledOrders gets orders with the right content in every fields" ); >+ok(((scalar @get_orders == 1) and grep ($_->{ordernumber} eq $ordernumbers[3], @get_orders)),"GetCancelledOrders only gets cancelled orders" ); >+ >+# >+# Test SearchOrders >+# >+ >+@expectedfields = qw ( >+ basketgroupid >+ basketgroupname >+ firstname >+ biblioitemnumber >+ ecost >+ uncertainprice >+ creationdate >+ datereceived >+ orderstatus >+ supplierreference >+ cancelledby >+ isbn >+ copyrightdate >+ gstrate >+ serial >+ listprice >+ budgetdate >+ basketno >+ discount >+ surname >+ freight >+ abstract >+ title >+ closedate >+ basketname >+ budgetgroup_id >+ invoiceid >+ author >+ parent_ordernumber >+ claims_count >+ entrydate >+ currency >+ quantityreceived >+ seriestitle >+ sort1_authcat >+ timestamp >+ biblionumber >+ unititle >+ sort2_authcat >+ rrp >+ unitprice >+ totalamount >+ sort1 >+ ordernumber >+ datecreated >+ purchaseordernumber >+ quantity >+ claimed_date >+ subscriptionid >+ frameworkcode >+ sort2 >+ notes >+ datecancellationprinted >+ budget_id > ); > >-my $orders = SearchOrders({ >+my $invoiceid = AddInvoice( >+ invoicenumber => 'invoice', > booksellerid => $booksellerid, >+ unknown => "unknown" >+); >+ >+my ($datereceived, $new_ordernumber) = ModReceiveOrder( >+ $biblionumber4, >+ $ordernumbers[4], >+ 1, >+ undef, >+ 10, >+ 10, >+ $invoiceid, >+ 10, >+ $order_content[4]->{str}->{budget_id} >+ ); >+ >+my $search_orders = SearchOrders({ >+ booksellerid => $booksellerid, >+ basketno => $basketno >+}); >+isa_ok( $search_orders, 'ARRAY' ); >+($test_missing_fields,$test_extra_fields,$test_different_fields,$test_nbr_fields) = _check_fields_of_orders (\@expectedfields , \@order_content, $search_orders ); >+is($$test_nbr_fields [0],scalar @expectedfields , "SearchOrders gets orders with the right number of fields" ); >+is(join (" ",@$test_missing_fields),'', "SearchOrders gets orders with no missing fields" ); >+is(join (" ",@$test_extra_fields),'', "SearchOrders gets orders with no unexpected fields" ); >+is(join (" ",@$test_different_fields),'', "SearchOrders gets orders with the right content in every fields" ); >+ok(((scalar @$search_orders == 4) and !grep ($_->{ordernumber} eq $ordernumbers[3], @$search_orders)),"SearchOrders only gets non-cancelled orders" ); >+ >+$search_orders = SearchOrders({ >+ booksellerid => $booksellerid, >+ basketno => $basketno, > pending => 1 > }); >-isa_ok( $orders, 'ARRAY' ); >-is(scalar(@$orders), 3, 'retrieved 3 pending orders'); >+ok(((scalar @$search_orders == 3) and !grep ((($_->{ordernumber} eq $ordernumbers[3]) or ($_->{ordernumber} eq $ordernumbers[4])), @$search_orders)),"SearchOrders with pending params gets only pending orders" ); > >-ok( exists( @$orders[0]->{basketgroupid} ), "SearchOrder: The basketgroupid key exists" ); >-ok( exists( @$orders[0]->{basketgroupname} ), "SearchOrder: The basketgroupname key exists" ); >+# >+# Test GetBudgetByOrderNumber >+# > >-ok( GetBudgetByOrderNumber($ordernumber1)->{'budget_id'} eq $budgetid, "GetBudgetByOrderNumber returns expected budget" ); >+ok( GetBudgetByOrderNumber($ordernumbers[0])->{'budget_id'} eq $budgetid, "GetBudgetByOrderNumber returns expected budget" ); > >-C4::Acquisition::CloseBasket( $basketno ); >+ >+# >+# Test GetLateOrders >+# >+ >+@expectedfields = qw ( >+ orderdate >+ author >+ budget >+ supplierid >+ claims_count >+ supplier >+ publisher >+ ordernumber >+ quantity >+ basketno >+ claimed_date >+ branch >+ estimateddeliverydate >+ title >+ publicationyear >+ unitpricelib >+ unitpricesupplier >+ subtotal >+ latesince >+); > my @lateorders = GetLateOrders(0); >+is(scalar grep ($_->{basketno} eq $basketno, @lateorders),0, "GetLateOrders does not get orders from opened baskets" ); >+C4::Acquisition::CloseBasket( $basketno ); >+@lateorders = GetLateOrders(0); >+isnt(scalar grep ($_->{basketno} eq $basketno, @lateorders),0, "GetLateOrders gets orders from closed baskets" ); >+ok(!grep ($_->{ordernumber} eq $ordernumbers[3], @lateorders),"GetLateOrders does not gets cancelled orders" ); >+ok(!grep ($_->{ordernumber} eq $ordernumbers[4], @lateorders),"GetLateOrders does not gets reveived orders" ); >+($test_missing_fields,$test_extra_fields,$test_different_fields,$test_nbr_fields) = _check_fields_of_orders (\@expectedfields , \@order_content, \@lateorders ); >+is($$test_nbr_fields [0],scalar @expectedfields , "GetLateOrders gets orders with the right number of fields" ); >+is(join (" ",@$test_missing_fields),'', "GetLateOrders gets orders with no missing fields" ); >+is(join (" ",@$test_extra_fields),'', "GetLateOrders gets orders with no unexpected fields" ); >+is(join (" ",@$test_different_fields),'', "GetLateOrders gets orders with the right content in every fields" ); >+ >+# >+# Test AddClaim >+# >+ > my $order = $lateorders[0]; > AddClaim( $order->{ordernumber} ); > my $neworder = GetOrder( $order->{ordernumber} ); > is( $neworder->{claimed_date}, strftime( "%Y-%m-%d", localtime(time) ), "AddClaim : Check claimed_date" ); > >-my @expectedfields = qw( basketno >- biblionumber >- invoiceid >- budgetdate >- cancelledby >- closedate >- creationdate >- currency >- datecancellationprinted >- datereceived >- ecost >- entrydate >- firstname >- freight >- gstrate >- listprice >- notes >- ordernumber >- purchaseordernumber >- quantity >- quantityreceived >- rrp >- sort1 >- sort2 >- subscriptionid >- supplierreference >- surname >- timestamp >- title >- totalamount >- unitprice ); >-my $firstorder = $orders->[0]; >-for my $field ( @expectedfields ) { >- ok( exists( $firstorder->{ $field } ), "This order has a $field field" ); >-} >+my $firstorder = $search_orders->[0]; > > # fake receiving the order > ModOrder({ >@@ -141,25 +588,10 @@ ModOrder({ > biblionumber => $firstorder->{biblionumber}, > quantityreceived => $firstorder->{quantity}, > }); >-my $pendingorders = SearchOrders({ >- booksellerid => $booksellerid, >- pending => 1 >-}); >-is(scalar(@$pendingorders), 2, 'retrieved 2 pending orders after receiving on one (bug 10723)'); >-my $allorders = SearchOrders({ >- booksellerid => $booksellerid, >-}); >-is(scalar(@$allorders), 3, 'retrieved all 3 orders even after after receiving on one (bug 10723)'); > >-my $invoiceid = AddInvoice( >- invoicenumber => 'invoice', >- booksellerid => $booksellerid, >- unknown => "unknown" >-); >- >-my ($datereceived, $new_ordernumber) = ModReceiveOrder( >+($datereceived, $new_ordernumber) = ModReceiveOrder( > $biblionumber2, >- $ordernumber2, >+ $ordernumbers[1], > 2, > undef, > 12, >@@ -167,7 +599,7 @@ my ($datereceived, $new_ordernumber) = ModReceiveOrder( > $invoiceid, > 42, > ); >-my $order2 = GetOrder( $ordernumber2 ); >+my $order2 = GetOrder( $ordernumbers[1] ); > is($order2->{'quantityreceived'}, 0, 'Splitting up order did not receive any on original order'); > is($order2->{'quantity'}, 40, '40 items on original order'); > is($order2->{'budget_id'}, $budgetid, 'Budget on original order is unchanged'); >@@ -186,7 +618,7 @@ my $budgetid2 = C4::Budgets::AddBudget( > > ($datereceived, $new_ordernumber) = ModReceiveOrder( > $biblionumber2, >- $ordernumber3, >+ $ordernumbers[2], > 2, > undef, > 12, >@@ -196,7 +628,7 @@ my $budgetid2 = C4::Budgets::AddBudget( > $budgetid2 > ); > >-my $order3 = GetOrder( $ordernumber3 ); >+my $order3 = GetOrder( $ordernumbers[2] ); > is($order3->{'quantityreceived'}, 0, 'Splitting up order did not receive any on original order'); > is($order3->{'quantity'}, 2, '2 items on original order'); > is($order3->{'budget_id'}, $budgetid, 'Budget on original order is unchanged'); >@@ -208,7 +640,7 @@ is($neworder->{'budget_id'}, $budgetid2, 'Budget on new order is changed'); > > ($datereceived, $new_ordernumber) = ModReceiveOrder( > $biblionumber2, >- $ordernumber3, >+ $ordernumbers[2], > 2, > undef, > 12, >@@ -218,7 +650,7 @@ is($neworder->{'budget_id'}, $budgetid2, 'Budget on new order is changed'); > $budgetid2 > ); > >-$order3 = GetOrder( $ordernumber3 ); >+$order3 = GetOrder( $ordernumbers[2] ); > is($order3->{'quantityreceived'}, 2, 'Order not split up'); > is($order3->{'quantity'}, 2, '2 items on order'); > is($order3->{'budget_id'}, $budgetid2, 'Budget has changed'); >-- >1.7.9.5 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 11224
:
22848
|
23042
|
23106
| 23347