Branch Coverage

lib/UR/Object/Type/AccessorWriter.pm
Criterion Covered Total %
branch 322 530 60.7


line true false branch
23 11059 5845334 if (@_ > 1)
32 9616 1443 if ($different or $@ =~ /has no overloaded magic/)
35 1622 7994 unless $is_transient
42 2348 57612 if (_class_is_singleton($class_name))
63 10 4448359 if (@_ > 1)
73 1 9 if ($different or $exception =~ /has no overloaded magic/)
83 1 7905 if (_class_is_singleton($class_name))
106 0 0 unless (ref $id_by)
118 0 0 if (@_ == 1) { }
123 0 0 if ($id_class_by and not ref $object_value)
127 0 0 if (defined $object_value) { }
128 0 0 if ($id_class_by) { }
0 0 elsif (not &Scalar::Util::blessed($object_value) || $object_value->can('id')) { }
129 0 0 $object_value->can('class') ? :
141 0 0 unless ($r_class_meta)
147 0 0 if (@$id_by == 1) { }
161 0 0 if ($id_class_by)
171 0 0 if ($id_class_by)
175 0 0 unless $concrete_r_class_name
177 0 0 unless ($id_resolver)
179 0 0 unless ($concrete_r_class_meta)
196 0 0 unless defined $id
197 0 0 if ($concrete_r_class_name eq 'UR::Object')
201 0 0 if ($concrete_r_class_name->isa('UR::Value')) { }
205 0 0 if (@_ or $where) { }
225 0 4684 unless (ref $id_by)
237 87 516461 if (@_ == 1) { }
242 86 1 if (defined $object_value) { }
243 36 50 if ($id_class_by) { }
1 49 elsif (not &Scalar::Util::blessed($object_value) || $object_value->can('id')) { }
244 36 0 $object_value->can('class') ? :
256 0 85 unless ($r_class_meta)
262 85 0 if (@$id_by == 1) { }
276 0 1 if ($id_class_by)
286 363 516098 if ($id_class_by)
290 0 363 unless $concrete_r_class_name
292 1147 515314 unless ($id_resolver)
294 1 1146 unless ($concrete_r_class_meta)
307 5970 510490 @id > 1 ? :
311 51 516409 unless defined $id
312 0 516409 if ($concrete_r_class_name eq 'UR::Object')
315 0 516409 if (@_ or $where) { }
339 0 863501 if @results == 1 and not defined $results[0]
347 1064 736 if $UR::Object::Type::bootstrapping
353 736 0 if $my_class_meta
354 736 0 if $my_class_meta
355 736 0 if $my_property_meta
357 25 711 unless ($my_class_meta and $my_property_meta and $via_property_meta and $to_property_meta)
362 40 0 if ($my_property_meta->is_delegated and $my_property_meta->is_many and $via_property_meta->is_many and $via_property_meta->reverse_as and $via_property_meta->data_type and $via_property_meta->data_type->isa('UR::Object'))
372 1 39 unless (@via_join_properties)
385 39 0 if ($where or $via_property_meta->where)
387 39 0 if $where
388 5 34 if $via_property_meta->where
393 9 18 if (UR::BoolExpr::Util::is_meta_param($where_property)) { }
397 0 0 if (ref $where_value eq 'HASH' and $where_value->{'operator'})
416 16 23 if ($to_property_meta->is_delegated and my $doubly_deledated_bridge_crosser = _resolve_bridge_crosser_for_doubly_delegated_property($to_property_meta, \%bridge_meta_params))
451 4 15 if ($to_property_meta->via) { }
13 2 elsif ($to_property_meta->id_by) { }
2 0 elsif ($to_property_meta->reverse_as) { }
455 4 0 if ($final_class_name and $final_class_name ne 'UR::Value' and $final_class_name->isa('UR::Object'))
456 2 2 if (1 == (my(@via2_join_properties) = $second_via_property_meta->get_property_name_pairs_for_join))
468 5 8 if ($to_property_meta->id_class_by) { }
482 1 1 if (1 == (my(@reverse_as_join_properties) = $to_property_meta->get_property_name_pairs_for_join))
491 16 3 if ($result_class_resolver)
521 0 44 if ($result_class->isa('UR::Value')) { }
528 3 30 if ($bridge_meta_params->{'-order'} or $bridge_meta_params->{'-order_by'})
536 2 31 if $to_property_meta->via
553 2019 15986 $where ? :
564 0 0 if @_ and _is_assignment_value(@_)
566 0 0 if ($class_name =~ /^UR::/)
573 0 0 if @results == 1 and not defined $results[0]
581 0 0 unless @bridges
582 0 0 if $to eq '-filter'
588 0 0 unless (@collectors)
596 0 0 if defined $_
597 0 0 @list == 1 ? :
603 0 0 unless ($foreign_class->isa('UR::Value'))
618 0 0 unless @working
620 0 0 unless $crossers[$i]
636 0 863701 if @_ == 1 and _is_assignment_value(@_)
638 1787 861914 unless ($bridge_collector)
645 91 863610 unless @bridges
646 37 863573 if $to eq '-filter'
652 0 18005 unless ($accessor_name)
664 0 0 if $r_class_name
667 0 0 unless ($linking_property->data_type)
672 0 0 unless ($final_property->data_type)
681 0 101 if (@_)
683 0 0 if (@_ == 1 and ref $_[0] and $_[0]->isa('UR::BoolExpr')) { }
705 11 3 $where ? :
715 13 0 unless (defined $update_strategy)
726 0 13 unless ($my_property_meta)
732 0 13 unless ($via_property_meta)
737 0 13 unless ($r_class_name)
741 0 13 unless ($r_class_meta)
747 13 0 if ($my_property_meta->_involves_id_property) { }
761 13 25 unless ($bridge_collector)
768 7 31 if (@_ == 1 and _is_assignment_value(@_))
769 4 3 unless defined $update_strategy
771 0 7 if ($update_strategy eq 'change') { }
7 0 elsif ($update_strategy eq 'delete-create') { }
772 0 0 if (@bridges == 0) { }
0 0 elsif (@bridges > 1) { }
779 0 0 if ($exception)
782 0 0 if ($property_meta) { }
799 0 7 if (@bridges > 1) { }
803 4 3 if (@bridges)
809 0 7 unless (@bridges)
815 5 33 unless (defined $is_many)
819 26 12 if ($is_many) { }
820 1 25 unless @bridges
824 1 11 unless @bridges
836 8 6 if ($singular_name)
840 0 8 if ($class_name->can($adder_method_name))
847 4 14 unless defined $update_strategy
848 7 11 unless (defined $via_adder)
855 16 2 if (@_ == 1)
869 0 8 if ($class_name->can($remover_method_name))
875 0 4 unless defined $update_strategy
876 3 1 unless (defined $via_remover)
883 4 0 if (@_ == 1)
904 0 1895 if (not defined $calculation_src or $calculation_src eq '') { }
10 1885 elsif (ref $calculation_src eq 'CODE') { }
2 1883 elsif ($calculation_src =~ /^[^\:\W]+$/) { }
906 0 0 unless ($accessor)
913 0 4 if (@_)
927 0 2 if $exception
940 0 1883 $params ? :
0 1883 $params ? :
946 1885 10 unless ($accessor)
947 1885 0 if (@src) { }
955 0 1885 if ($exception)
959 0 1885 unless ($accessor)
968 241 1654 if ($accessor and $is_cached)
973 1 4746 if (@_ > 1)
976 577 4169 unless (exists $_[0]{$accessor_name})
1019 0 0 if (defined $delegate_id) { }
1022 0 0 if (not @_) { }
1040 0 0 if ($different or $exception =~ /has no overloaded magic/)
1043 25 3 if ($property eq $other_accessor_name) { }
1052 0 0 unless $is_transient
1059 0 0 if (@_) { }
1069 0 0 if ($different or $exception =~ /has no overloaded magic/)
1071 0 0 unless $is_transient
1103 0 0 if (@_ > 1)
1112 0 0 if ($different or $exception =~ /has no overloaded magic/)
1114 0 0 unless $is_transient
1118 0 0 unless (defined $_[0]{$accessor_name})
1125 0 0 unless $delegate
1144 3 3 if (@_ > 1) { }
1 2 elsif (defined $calc_default) { }
1154 3 0 if ($different or $exception =~ /has no overloaded magic/)
1155 3 0 unless $is_transient
1176 1 495 if (@_ > 1) { }
1 494 elsif (defined $calc_default) { }
1185 1 0 if ($different or $exception =~ /has no overloaded magic/)
1186 1 0 defined $new ? :
1187 1 0 defined $variable_value ? :
1213 986 1750 $where ? :
1218 671 14 if (defined $r_class_name)
1223 310 361 unless ($r_class_meta or 'UR::Object::Type'->use_module_with_namespace_constraints($r_class_name))
1229 326 345 unless ($r_class_meta)
1236 310 361 if ($exception)
1240 7 678 if ($r_class_meta and not $reverse_as)
1247 0 7 if (@possible_relationships > 1) { }
3 4 elsif (@possible_relationships == 1) { }
4 0 elsif (@possible_relationships == 0) { }
1262 0 685 if ($reverse_as and not $r_class_meta)
1265 0 0 if ($loading_r_class_error) { }
1272 357 328 if ($reverse_as) { }
1274 0 357 unless ($r_class_meta)
1278 0 357 unless ($property_meta)
1282 1 356 if ($property_meta->via) { }
1293 0 357 unless ($obj->can($my_property_name))
1300 3 354 if (my $id_class_by = $property_meta->id_class_by)
1305 0 357 if (my $order_by = $property_meta->order_by)
1309 0 357 unless ($rule_template)
1322 2 1473 if (ref $where[$i] eq 'HASH' and exists $where[$i]{'operator'}) { }
1334 0 31 unless $r_class_meta
1339 29 2 $plural_name ? :
1340 3 28 if (my $specify_by = $pmeta->{'specify_by'}) { }
1349 12 35 grep({$id_property_name eq $_;} @$r_ids) ? :
1355 6 22 unless scalar @params_prefix == 1
1360 2716 20 if (not $plural_name or $singular_name ne $plural_name)
1364 7 10 unless defined $rule_template
1365 13 4 if ($rule_template) { }
1366 10 3 unless defined $rule
1367 5 8 unless $params_prefix_resolved
1368 1 12 if @_ == 1
1369 7 6 if (@_) { }
1377 2 2 unless $self->{$plural_name}
1378 0 2 unless @_
1379 0 2 if (@_ > 1)
1382 0 2 unless (ref $self->{$plural_name} eq 'ARRAY')
1387 2 0 if @matches < 2
1398 2 2714 unless ($plural_name)
1406 0 0 unless $rule_template
1407 0 0 unless ($rule_template)
1410 0 0 if (@_) { }
1428 478 6611 unless defined $rule_template
1429 6945 144 if ($rule_template) { }
1430 6611 334 unless defined $rule
1431 2682 4263 if (@_) { }
1439 4 140 if (@_) { }
1440 0 4 if (@_ != 1) { }
1 3 elsif (ref $_[0] ne 'ARRAY') { }
1450 102 38 unless $self->{$plural_name}
1451 0 38 if (ref $self->{$plural_name} ne 'ARRAY')
1487 1 20 unless defined $rule_template
1488 20 1 if ($rule_template) { }
1489 20 0 unless defined $rule
1490 15 5 if (@_) { }
1510 0 4 unless defined $rule_template
1511 4 0 if ($rule_template) { }
1512 4 0 unless defined $rule
1528 1 2733 if ($class_name->can($adder_method_name))
1535 197 156 unless defined $rule_template
1536 176 177 if ($rule_template) { }
1537 26 150 unless $params_prefix_resolved
1538 95 81 if @_ == 1
1539 156 20 unless defined $rule
1543 1 176 if ($r_class_meta) { }
1545 1 0 if (@_ == 1 and $_[0]->isa($r_class_name)) { }
1550 0 0 unless ($obj)
1558 0 176 if (@_ != 1)
1573 1 2733 if ($class_name->can($remover_method_name))
1579 2 7 unless defined $rule_template
1580 7 2 if ($rule_template) { }
1582 7 0 unless defined $rule
1583 0 7 unless $params_prefix_resolved
1585 1 6 if (@_ == 1 and ref $_[0]) { }
1587 0 1 unless ($rule->evaluate($_[0]))
1594 1 5 if @_ == 1
1599 0 7 unless $_->delete
1607 0 2 if ($r_class_meta) { }
1613 0 0 if ($rule->evaluate($value)) { }
1620 0 0 if (@remove)
1627 2 0 if (@_ == 1) { }
0 0 elsif (@_ == 0) { }
1632 2 3 if ($value eq $_[0])
1634 0 2 unless $removed eq $value
1670 580 6315 if $property_name eq 'id'
1676 0 95383 if ($property_data->{'is_dimension'})
1678 0 0 unless ($id_by)
1681 0 0 if (@$id_by != 1)
1692 0 0 unless ($self->{'has'}{$expected_delegate_property_name})
1716 0 6 unless ($property_data)
1719 0 6 if ($n > 100)
1735 5321 90062 if ($class_name->can($accessor_name))
1742 0 95383 unless ($accessor_name)
1748 4684 90699 if (my $id_by = $property_data->{'id_by'}) { }
4 90695 elsif ($property_data->{'is_calculated'} and not $property_data->{'is_mutable'}) { }
18019 72676 elsif (my $via = $property_data->{'via'}) { }
1891 70785 elsif (my $calculate = $property_data->{'calculate'}) { }
2 70783 elsif (my $calculate_sql = $property_data->{'calculate_sql'}) { }
2736 68047 elsif ($property_data->{'is_many'} or $property_data->{'reverse_as'}) { }
183 67864 elsif ($property_data->{'is_classwide'}) { }
1752 0 4684 if ($property_data->{'access_as'} and $property_data->{'access_as'} eq 'auto') { }
1754 0 0 $property_data->{'is_many'} ? :
1777 0 18019 if ($via eq '__self__')
1781 14 18005 if ($property_data->{'is_mutable'}) { }
1783 8 6 if ($property_data->{'is_many'})
1815 2734 2 if ($property_data->{'is_many'}) { }
1827 180 3 if ($property_data->{'is_constant'}) { }
1843 7904 59960 if ($id_property_names{$property_name} or not $property_data->{'is_mutable'}) { }