Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision f5df17ca

Von Sven Schöling vor mehr als 8 Jahren hinzugefügt

  • ID f5df17caa4a22bcb8abe4910b837ec86a84ba9f0
  • Vorgänger 2a5c1eb3
  • Nachfolger f1c3810f

LinkedRecord: Batch mode

Unterschiede anzeigen:

t/db_helper/record_links.t
use Test::More tests => 49;
use Test::More tests => 66;
use strict;
......
use Data::Dumper;
use Support::TestSetup;
use Test::Exception;
use Test::Deep qw(cmp_bag);
use List::Util qw(max);
use SL::DB::Buchungsgruppe;
......
$links = $o1->linked_records(direction => 'both', recursive => 1, save_path => 1);
is @$links, 4, 'recursive dir=both does not give duplicates';
clear_up();
# test batch mode
#
#
#
reset_state();
$o1 = new_order();
$o2 = new_order();
my $i1 = new_invoice();
my $i2 = new_invoice();
$o1->link_to_record($i1);
$o2->link_to_record($i2);
$links = $o1->linked_records(direction => 'to', to => 'Invoice', batch => [ $o1->id, $o2->id ]);
is_deeply [ map { $_->id } @$links ], [ $i1->id , $i2->id ], "batch works";
$links = $o1->linked_records(direction => 'to', recursive => 1, batch => [ $o1->id, $o2->id ]);
cmp_bag [ map { $_->id } @$links ], [ $i1->id , $i2->id ], "batch works recursive";
$links = $o1->linked_records(direction => 'to', to => 'Invoice', batch => [ $o1->id, $o2->id ], by_id => 1);
# $::lxdebug->dump(0, "links", $links);
is @{ $links->{$o1->id} }, 1, "batch by_id 1";
is @{ $links->{$o2->id} }, 1, "batch by_id 2";
is keys %$links, 2, "batch by_id 3";
is $links->{$o1->id}[0]->id, $i1->id, "batch by_id 4";
is $links->{$o2->id}[0]->id, $i2->id, "batch by_id 5";
$links = $o1->linked_records(direction => 'to', recursive => 1, batch => [ $o1->id, $o2->id ], by_id => 1);
is @{ $links->{$o1->id} }, 1, "batch recursive by_id 1";
is @{ $links->{$o2->id} }, 1, "batch recursive by_id 2";
is keys %$links, 2, "batch recursive by_id 3";
is $links->{$o1->id}[0]->id, $i1->id, "batch recursive by_id 4";
is $links->{$o2->id}[0]->id, $i2->id, "batch recursive by_id 5";
$links = $o1->linked_records(direction => 'both', recursive => 1, batch => [ $o1->id, $o2->id ], by_id => 1);
is @{ $links->{$o1->id} }, 1, "batch recursive by_id direction both 1";
is @{ $links->{$o2->id} }, 1, "batch recursive by_id direction both 2";
is keys %$links, 2, "batch recursive by_id direction both 3";
is $links->{$o1->id}[0]->id, $i1->id, "batch recursive by_id direction both 4";
is $links->{$o2->id}[0]->id, $i2->id, "batch recursive by_id direction both 5";
1;

Auch abrufbar als: Unified diff