Condition Coverage

blib/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm
Criterion Covered Total %
condition 97 139 69.7


and 3 conditions

line !l l&&!r l&&r condition
18 67 1 7 defined $attrs and ref $attrs eq 'HASH'
67 0 1 defined $attrs and ref $attrs eq 'ARRAY'
76 275 2 0 defined $fixed_fields and ref $fixed_fields ne 'ARRAY'
90 277 0 0 &blessed($updates) and $updates->isa('DBIx::Class::Row')
97 192 0 177 exists $updates->{$colname} and defined $updates->{$colname}
102 103 0 89 exists $resolved->{$colname} and defined $resolved->{$colname}
117 176 0 101 scalar keys %pk_kvs != scalar @pks and @non_pk_columns
136 380 12 12 $accessor_name ne $colname and exists $non_rel_updates{$accessor_name}
154 0 94 6 $row->can($colname) and defined $row->$colname
174 116 55 106 not defined $object and scalar keys %pk_kvs == scalar @pks
189 120 55 102 not defined $object and scalar keys %all_pks == scalar @pks
219 301 142 56 $source->has_relationship($name) && ref $updates->{$name}
116 56 443 exists $columns_by_accessor{$name} and not $source->has_relationship($name) && ref $updates->{$name}
245 4 6 27 not $m2m_force_set_rel and $source->result_class->can('_m2m_metadata')
268 3 0 2 $object->can($name) and not $source->has_relationship($name)
326 0 0 10 defined $value and ref $value eq 'ARRAY'
0 0 0 defined $value and not ref $value
336 23 0 0 &blessed($elem) and $elem->isa('DBIx::Class::Row')
437 0 100 46 defined $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION and $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION == $resolved
498 135 0 69 exists $sub_updates->{$colname} and defined $sub_updates->{$colname}
531 52 0 83 exists $resolved->{$colname} and defined $resolved->{$colname}
555 65 0 51 scalar keys %pk_kvs != scalar @pks and @non_pk_columns
567 2 1 31 $rel_info->{'attrs'}{'accessor'} eq 'single' and $rel_info->{'attrs'}{'is_foreign_key_constraint'}
580 0 20 10 keys %{$$rel_info{'cond'};} == 1 and not ref $sub_updates->{$relname}
600 95 0 21 scalar keys %pk_kvs != scalar @pks and @non_pk_columns
619 87 10 10 $accessor_name ne $colname and exists $non_rel_updates{$accessor_name}
638 0 20 2 $related_row->can($colname) and defined $related_row->$colname
693 58 36 2 not defined $related_object and &any(sub {
786 76 0 10 &blessed($updates) and $updates->isa('DBIx::Class::Row')
38 37 1 $attrs->{'accessor'} eq 'single' and defined $related_row
810 0 0 1 exists $attrs->{'join_type'} and $attrs->{'join_type'} eq 'LEFT'
0 0 1 not $updates and (exists $attrs->{'join_type'} and $attrs->{'join_type'} eq 'LEFT')
817 0 8 75 ($attrs->{'accessor'} eq 'single' || $attrs->{'accessor'} eq 'filter') && $attrs->{'is_foreign_key_constraint'}
821 0 0 83 $sub_object || $updates || $might_belong_to || $join_type eq 'LEFT' and ref $info->{'cond'} ne 'CODE'
844 6 157 159 $object->can($relation) and not $self->result_source->has_relationship($relation)
163 147 12 $object->can($relation) and not $self->result_source->has_relationship($relation) and $object->can('set_' . $relation)
870 0 0 0 $object->result_source->column_info($col)->{'is_auto_increment'} and !defined($object->{'_column_data'}{$col}) || $object->{'_column_data'}{$col} eq ''

or 2 conditions

line l !l condition
55 154 123 $resolved ||= {}
813 12 71 $attrs->{'join_type'} || ''

or 3 conditions

line l !l&&r !l&&!r condition
125 3 79 124 is_m2m($self, $_) || $source->has_relationship($_)
310 152 0 115 $object->is_changed or keys %other_methods
367 72 1476 0 $info->{'accessor'} or $name
470 46 41 0 $attrs->{'accessor'} eq 'single' or $attrs->{'accessor'} eq 'filter'
608 2 4 35 is_m2m($related_resultset, $_) || $related_result_source->has_relationship($_)
701 58 2 56 defined $related_object or $relink
821 2 0 0 $sub_object || $updates || $might_belong_to || $join_type eq 'LEFT'
870 0 0 0 !defined($object->{'_column_data'}{$col}) || $object->{'_column_data'}{$col} eq ''