Branch Coverage

blib/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm
Criterion Covered Total %
branch 143 174 82.1


line true false branch
18 5 57 if (defined $attrs and ref $attrs eq 'HASH') { }
1 112 elsif (defined $attrs and ref $attrs eq 'ARRAY') { }
60 0 217 unless defined $updates
63 0 217 unless ref $updates eq 'HASH'
66 0 217 if defined $fixed_fields and ref $fixed_fields ne 'ARRAY'
70 44 173 if defined $object
77 78 139 if $source->storage->debug
80 0 217 if (&blessed($updates) and $updates->isa('DBIx::Class::Row'))
87 139 140 if (exists $updates->{$colname} and defined $updates->{$colname})
92 58 82 if exists $resolved->{$colname} and defined $resolved->{$colname}
107 80 137 if (scalar keys %pk_kvs != scalar @pks and @non_pk_columns)
126 12 12 if ($accessor_name ne $colname and exists $non_rel_updates{$accessor_name})
142 4 79 if exists $pk_kvs{$colname}
144 6 73 if ($row->can($colname) and defined $row->$colname) { }
164 122 95 if (not defined $object and scalar keys %pk_kvs == scalar @pks)
166 4 118 if (defined $cached_rows)
179 118 99 if (not defined $object and scalar keys %all_pks == scalar @pks)
184 91 126 unless (defined $object)
209 359 143 if (exists $columns_by_accessor{$name} and not $source->has_relationship($name) && ref $updates->{$name})
216 114 29 if ($source->has_relationship($name))
217 64 50 if (_master_relation_cond($self, $name)) { }
228 24 5 if (is_m2m($self, $name))
235 17 7 if (not $m2m_force_set_rel and $source->result_class->can('_m2m_metadata')) { }
256 2 3 if ($object->can($name) and not $source->has_relationship($name))
266 2 1 unless $unknown_params_ok
297 132 75 if $object->is_changed or keys %other_methods
305 103 103 unless ($in_storage)
320 7 0 if (defined $value and ref $value eq 'ARRAY') { }
0 0 elsif (defined $value and not ref $value) { }
0 0 elsif (defined $value) { }
330 0 16 if (&blessed($elem) and $elem->isa('DBIx::Class::Row')) { }
5 11 elsif (ref $elem eq 'HASH') { }
371 0 67 unless defined $rows
373 0 67 unless ref $kvs eq 'HASH'
376 0 67 if keys %$kvs == 0
379 0 67 unless ref $rows eq 'ARRAY'
382 0 67 unless ($rows)
393 92 42 if &all(sub { $kvs->{$_} eq $row->get_column($_); } , grep({not ref $kvs->{$_};} sort(keys %$kvs)))
396 20 47 if @matching_rows > 1
398 23 44 if scalar @matching_rows == 1
401 23 44 if defined $matching_row
404 44 23 unless defined $matching_row
416 0 120 unless $object->has_relationship($name)
427 120 0 if ($self->result_source->can('_resolve_condition')) { }
434 41 79 if defined $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION and $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION == $resolved
441 0 120 if (ref $info->{'cond'} eq 'CODE') { }
460 115 5 unless $related_resultset->result_source->column_info($rel_col)->{'is_nullable'}
463 3 115 $all_fks_nullable ? :
118 2 unless defined $if_not_submitted
467 50 70 if ($attrs->{'accessor'} eq 'multi') { }
70 0 elsif ($attrs->{'accessor'} eq 'single' or $attrs->{'accessor'} eq 'filter') { }
471 1 49 unless defined $updates
473 0 50 unless ref $updates eq 'ARRAY'
479 28 22 if ($row_existed)
492 67 77 if (exists $sub_updates->{$colname} and defined $sub_updates->{$colname})
498 52 25 if exists $resolved->{$colname} and defined $resolved->{$colname}
515 24 62 if (scalar keys %pk_kvs != scalar @pks and @non_pk_columns)
534 10 10 if ($accessor_name ne $colname and exists $non_rel_updates{$accessor_name})
551 3 25 if exists $pk_kvs{$colname}
553 2 23 if ($related_row->can($colname) and defined $related_row->$colname) { }
572 63 23 if (scalar keys %pk_kvs == scalar @pks) { }
606 17 28 if (scalar @remove_rows)
610 6 11 if (scalar @pks == 1) { }
634 8 3 if (scalar @cond)
639 15 2 if ($if_not_submitted eq 'delete') { }
2 0 elsif ($if_not_submitted eq 'set_to_null') { }
654 69 1 if (ref $updates) { }
657 24 45 if exists $updates->{$_}
24 45 if (&all(sub { defined $updates->{$_} if exists $updates->{$_}; } , @pks))
661 10 59 if (&blessed($updates) and $updates->isa('DBIx::Class::Row')) { }
3 56 elsif ($attrs->{'accessor'} eq 'single' and defined $object->$name) { }
667 2 1 $existing_row ? :
674 22 34 $existing_row ? :
686 0 1 unless not $updates and (exists $attrs->{'join_type'} and $attrs->{'join_type'} eq 'LEFT')
697 66 0 if ($sub_object || $updates || $might_belong_to || $join_type eq 'LEFT' and ref $info->{'cond'} ne 'CODE')
714 57 285 if ($rclass->can('_m2m_metadata'))
718 10 269 if ($object->can($relation) and not $self->result_source->has_relationship($relation) and $object->can('set_' . $relation))
731 2 5 if ($rclass->can('_m2m_metadata'))
744 0 0 if ($object->result_source->column_info($col)->{'is_auto_increment'} and !defined($object->{'_column_data'}{$col}) || $object->{'_column_data'}{$col} eq '')
757 74 7 if ($self->result_source->has_relationship($relation))
762 7 74 if (is_m2m($self, $relation))
781 40 74 if $info->{'attrs'}{'accessor'} eq 'multi'
795 9 64 if ($source->column_info($col)->{'is_auto_increment'})
798 64 0 if (&any(sub { $_ eq $f_key; } , @foreign_ids))
805 74 0 if (ref $cond eq 'HASH') { }
0 0 elsif (ref $cond eq 'ARRAY') { }
0 0 elsif (ref $cond eq 'CODE') { }