Branch Coverage

lib/UR/Object/Join.pm
Criterion Covered Total %
branch 65 90 72.2


line true false branch
46 10 0 if $_->isa('UR::Object::Join')
6 2 if (grep {$_->id eq $id_to_remove if $_->isa('UR::Object::Join');} @{$$joins_for_class{$property_chain};})
77 105 244 if ($pmeta->via or $pmeta->to) { }
82 0 244 unless (defined $foreign_class and $foreign_class->can('get'))
85 191 53 if ($pmeta->id_by or $foreign_class->isa('UR::Value')) { }
52 1 elsif (my $reverse_as = $pmeta->reverse_as) { }
109 286 8 unless ($self)
114 0 2575 unless ($self->{$k} eq $p{$k})
119 0 294 unless ($self)
135 0 105 if ($via and not $to)
140 105 0 if ($via) { }
141 2 103 if ($via eq '__self__')
143 0 2 unless ($to_meta)
150 0 103 unless ($via_meta)
151 0 0 if $class_name->can($via)
157 0 103 if ($via_meta->to and $via_meta->to eq '-filter')
161 0 103 unless ($via_meta->data_type)
168 25 78 if (my $where = $pmeta->where)
170 0 25 unless ($join and $join->{'foreign_class'})
187 98 5 if ($to and $to ne '__self__' and $to ne '-filter')
189 0 98 unless ($to_class_meta)
197 0 98 unless ($to_meta)
206 103 0 if (my $return_class_name = $pmeta->_convert_data_type_for_source_class_to_final_class($pmeta->data_type, $pmeta->class_name))
208 69 34 if ($return_class_name ne $final_class_name)
209 3 66 if ($return_class_name->isa($final_class_name)) { }
64 2 elsif ($return_class_name eq 'UR::Value::SloppyPrimitive' or $final_class_name eq 'UR::Value::SloppyPrimitive') { }
0 2 elsif ($final_class_name->isa($return_class_name)) { }
250 0 191 unless (defined $foreign_class and $foreign_class->can('get'))
263 1 190 if ($where)
275 82 109 if ($foreign_class->isa('UR::Value')) { }
109 0 elsif (my $id_by = $pmeta->id_by) { }
276 1 81 if (my $id_by = $pmeta->id_by)
277 1 0 ref $id_by eq 'ARRAY' ? :
294 109 0 if (ref $id_by eq 'ARRAY')
299 105 5 unless $id_by_property and $id_by_property->is_delegated
310 5 104 if (@reverse > 1) { }
312 0 5 if (@reduced != 1)
320 58 51 if ($reverse)
356 0 52 unless (defined $foreign_class and $foreign_class->can('get'))
368 2 50 if ($where)
379 0 52 unless ($foreign_property_via)
395 3 51 if ($prev_where)
411 0 52 if ($prev_where)
436 246 144 if $foreign_id_meta->class_name eq 'UR::Object'
437 47 97 if delete $join_properties{$foreign_id_meta->property_name}