Branch Coverage

lib/Command/Dispatch/Shell.pm
Criterion Covered Total %
branch 117 370 31.6


line true false branch
17 0 0 if (@_)
35 0 0 if ($ENV{'COMP_CWORD'})
46 0 0 unless 'UR::Context'->commit
48 0 0 if ($@)
50 0 0 unless 'UR::Context'->rollback
51 0 0 unless $exit_code
63 0 0 $_ =~ /^(--\w+?)\=(.*)/ ? :
67 0 1 if ($errors and @$errors) { }
89 0 3 unless ($delegate_class)
109 1 2 unless (defined $params)
116 0 2 if ($params->{'help'})
121 0 2 if defined $original_cmdline
124 0 2 unless ($command_object)
135 1 1 if ($command_object->debug)
141 0 2 if ($command_object->__errors__)
154 20 0 unless (grep {/^help\W/;} @spec)
181 0 20 unless ($rv)
193 0 20 if (my(@names) = $self->_bare_shell_argument_names)
196 0 0 unless ($name)
202 0 0 if ($meta->is_many and $n == $#names) { }
213 0 20 if (@ARGV and not $self->_bare_shell_argument_names)
222 0 29 if (ref $value) { }
4 25 elsif ($value eq q[''] or $value eq '""') { }
238 1 28 unless $new_key =~ tr/\-/_/
239 0 0 if (exists $params_hash->{$new_key} and exists $params_hash->{$key})
253 0 20 if ($params_hash->{'help'})
261 17 3 if (my(@errors) = $self->_errors_from_missing_parameters($params))
265 0 3 unless (@_)
285 0 0 if ($@)
292 0 0 if (@params and $params[0]) { }
293 0 0 if ($pmeta->{'is_many'}) { }
309 0 3 if (@error_tags) { }
321 6 0 unless (grep {/^help\W/;} @completion_spec)
339 0 29 if (my $via = $property_meta->via) { }
29 0 elsif (my $id_by = $property_meta) { }
340 0 0 unless ($property_meta->is_mutable)
344 0 0 unless ($specified_property_metas{$via})
353 29 0 unless ($specified_property_metas{$id_by})
366 20 0 if (my $has = $class_meta->{'has'})
375 60 60 if $property_meta->is_optional
376 0 60 if $property_meta->implied_by
377 0 60 if defined $property_meta->default_value
378 10 50 if defined $params->{$pn}
379 0 50 if $set_indirectly{$pn}
381 0 50 if (my $via = $property_meta->via)
382 0 0 if ($params->{$via} or $set_indirectly{$via})
391 20 30 if ($property_meta->is_output and not $property_meta->is_input and not $property_meta->is_param) { }
392 0 20 if ($property_meta->_data_type_as_class_name->__meta__->data_source and not $property_meta->_data_type_as_class_name->isa('UR::Value')) { }
20 0 elsif ($property_meta->is_calculated) { }
428 3 0 if ($params)
435 0 6 unless ($pmeta)
442 6 0 unless $self->_can_resolve_type($param_type)
445 0 0 if (my $arg_type = ref $param_arg) { }
446 0 0 if $arg_type eq $param_type
447 0 0 if ($arg_type ne 'ARRAY')
454 0 0 unless @$param_arg
464 0 0 if (defined $require_user_verify) { }
465 0 0 if $require_user_verify
479 6 0 unless @param_adverb_require_verification
481 0 0 if (@param_adverb_require_verification > 1)
494 0 6 unless $type
497 6 0 if (ref $type ne 'ARRAY') { }
521 0 749 if $seen{$property_name}++
522 24 725 unless $rule->evaluate($property_meta)
523 348 127 unless $property_meta->can('is_param') and $property_meta->is_param || $property_meta->is_input || $property_meta->is_output
524 6 371 if (%extra)
527 4 2 if ($property_meta->$key ne $extra{$key})
533 0 373 if $property_name eq 'id'
534 53 320 if $property_name eq 'result'
535 0 320 if $property_name eq 'is_executed'
536 0 320 if $property_name eq 'original_command_line'
537 0 320 if $property_name =~ /^_/
539 0 320 if $property_meta->implied_by
540 40 280 if $property_meta->is_calculated
544 0 280 if $property_meta->is_transient
545 1 279 if $property_meta->is_constant
546 0 279 if ($property_meta->is_delegated or defined $property_meta->data_type and $property_meta->data_type =~ /::/) { }
547 0 0 unless $self->can('resolve_param_value_from_cmdline_text')
550 0 279 unless $property_meta->is_mutable
553 16 263 if ($property_meta->{'shell_args_position'}) { }
168 95 elsif ($property_meta->is_optional) { }
557 15 153 if ($property_meta->is_input or $property_meta->is_output) { }
153 0 elsif ($property_meta->is_param) { }
565 8 87 if ($property_meta->is_input or $property_meta->is_output) { }
87 0 elsif ($property_meta->is_param) { }
589 0 137 $singularize ? :
598 4 132 $property_meta->is_many ? :
599 9 127 if (defined $property_meta->data_type and $property_meta->data_type =~ /Boolean/) { }
613 0 0 if ($property_meta->{'shell_args_position'})
617 0 0 if ($property_meta->{'shell_args_position'}) { }
618 0 0 if ($property_meta->is_optional)
624 0 0 if (defined $property_meta->data_type and $property_meta->data_type =~ /Boolean/) { }
628 0 0 if ($property_meta->is_many) { }
634 0 0 if ($property_meta->is_optional)
657 3 33 if ($completions) { }
658 3 0 if (ref $completions eq 'ARRAY')
671 1 32 if (not defined $type) { }
676 19 219 if (not $type or $type eq $pattern)
682 0 128 if ($type and $type eq $pattern)
748 0 3 if (ref $param_class eq 'ARRAY')
750 0 0 if (@param_class > 1) { }
764 2 1 if ($bx) { }
766 0 2 if (@results > 1 and not defined $require_user_verify)
776 0 2 if (@arg_results != 1 and not defined $require_user_verify)
783 3 0 if (@results) { }
791 0 0 if ($bx_error)
797 0 3 unless @results
800 0 3 if ($self->can($limit_results_method))
802 0 0 unless @results
805 0 3 if ($require_user_verify)
806 0 0 if (not $pmeta->{'is_many'} and @results > 1)
807 0 0 if $MESSAGE
810 0 0 if ($ENV{'UR_NO_REQUIRE_USER_VERIFY'})
817 0 0 if $MESSAGE
822 3 0 if (wantarray) { }
0 0 elsif (not defined wantarray) { }
0 0 elsif (@results > 1) { }
839 0 2 unless ($param_class)
847 0 2 if $@ and not $@ =~ /Not a valid BoolExpr/
848 0 2 unless (@results or $@)
854 2 0 unless (@results or $param_arg =~ /,/)
856 0 2 if ($param_class->can('_resolve_param_value_from_text_by_name_or_id')) { }
865 0 0 unless (@results or $param_arg =~ /,/)
869 0 2 if ($via_method)
873 2 0 if (wantarray) { }
0 0 elsif (not defined wantarray) { }
0 0 elsif (@results > 1) { }
891 0 0 if (exists $ALTERNATE_FROM_CLASS{$param_class}) { }
896 0 0 if ($param_class->isa($class))
897 0 0 if ($via_class)
904 0 0 if ($via_class)
910 0 0 if (@methods > 1 and not $via_method and not $ENV{'UR_NO_REQUIRE_USER_VERIFY'}) { }
915 0 0 if $i == 0
921 0 0 if ($response =~ /^\d+$/) { }
0 0 elsif (not $response) { }
923 0 0 if ($response == @methods) { }
0 0 elsif ($response >= 0 and $response <= $#methods) { }
942 0 0 unless ($SEEN_FROM_CLASS{$from_class})
958 0 2 if ($bx) { }
974 0 2 if (@id_property_names == 0) { }
2 0 elsif (@id_property_names == 1) { }
979 0 2 if ($id_data_type->isa('UR::Value::Number'))
989 2 0 if ($self->_try_get_by_id($param_class, $str))
992 2 0 if (not @results and $param_class->can('name'))
994 0 2 unless (@results)
1006 0 0 if ($n_list > 200 and not $ENV{'UR_NO_REQUIRE_USER_VERIFY'})
1008 0 0 if (not $response or $response eq 'x')
1012 0 0 if $response eq 'p'
1031 0 0 if $ENV{'UR_NO_REQUIRE_USER_VERIFY'}
1032 0 0 if @results == 0
1035 0 0 @dnames ? :
1036 0 0 unless $_->status
1037 0 0 @statuses ? :
1058 0 0 if ($param->can('status'))
1062 0 0 if @classes > 1
1065 0 0 if ($MESSAGE)
1072 0 0 if ($caller[3] =~ /_trim_list_from_response/)
1077 0 0 if (lc $response eq 'h' or not $self->_validate_user_response_for_param_value_verification($response))
1078 0 0 if $MESSAGE
1090 0 0 if (lc $response eq 'x') { }
0 0 elsif (lc $response eq 'b') { }
0 0 elsif (lc $response eq 'c' | $response eq '*') { }
0 0 elsif ($response =~ /^[-+]?[\d\-\., ]+$/) { }
1113 0 0 unless ($fh)
1129 0 0 unless defined $timeout
1135 0 0 unless ($self->_can_interact_with_user)
1142 0 0 if $timeout
1144 0 0 if $timeout
1148 0 0 if (lc($input) =~ /^$valid_values$/) { }
0 0 elsif ($default_value) { }
1162 0 0 if $response_text =~ /^[+-]/
1165 0 0 if ($response =~ /^[xbc*]$/)
1168 0 0 unless ($response =~ /^(\d+)([-\.]+(\d+))?$/)
1169 0 0 if $MESSAGE
1173 0 0 if ($3 and $1 and $3 < $1)
1174 0 0 if $MESSAGE
1186 0 0 if ($response_text =~ /^[+-]/) { }
1196 0 0 if $method eq '-'
1202 0 0 if $high < $low
1203 0 0 if ($method eq '+') { }
1212 0 0 unless (@new_list)
1220 0 0 unless defined $str
1222 0 0 if $padding < 0
1223 0 0 if ($pos and $pos eq 'suffix') { }
1233 0 0 if (-t STDERR) { }