Assortment und Assembly Tests nutzen SL::Dev::Part
[kivitendo-erp.git] / t / part / assembly.t
1 use strict;
2 use Test::More;
3
4 use lib 't';
5 use Support::TestSetup;
6 use Test::Exception;
7 use SL::DB::Unit;
8 use SL::DB::Part;
9 use SL::DB::Assembly;
10 use SL::Dev::Part;
11
12 Support::TestSetup::login();
13
14 clear_up();
15 reset_state();
16
17 is( SL::DB::Manager::Part->get_all_count(), 4,  "total number of parts created is 4");
18
19 my $assembly_part      = SL::DB::Manager::Part->find_by( partnumber => '19000' ) || die "Can't find part 19000";
20 my $assembly_item_part = SL::DB::Manager::Part->find_by( partnumber => 'ap1' );
21
22 is($assembly_part->part_type, 'assembly', 'assembly has correct type');
23 is( scalar @{$assembly_part->assemblies}, 3, 'assembly consists of two parts' );
24
25 # fetch assembly item corresponding to partnumber 19000
26 my $assembly_items = $assembly_part->find_assemblies( { parts_id => $assembly_item_part->id } ) || die "can't find assembly_item";
27 my $assembly_item = $assembly_items->[0];
28 is($assembly_item->part->partnumber, 'ap1', 'assembly part part relation works');
29 is($assembly_item->assembly_part->partnumber, '19000', 'assembly part assembly part relation works');
30
31 clear_up();
32 done_testing;
33
34 sub clear_up {
35   SL::DB::Manager::Assembly->delete_all(all => 1);
36   SL::DB::Manager::Part->delete_all(    all => 1);
37 };
38
39 sub reset_state {
40   my %params = @_;
41
42   my $assembly = SL::Dev::Part::create_assembly( partnumber => '19000' )->save;
43 };
44
45 1;