From 8f7baed6d49d2087c7f66253ab10e4b4c90a8eed Mon Sep 17 00:00:00 2001 From: AdultCensusSalaryPrediction Date: Wed, 1 Nov 2023 04:06:51 -0300 Subject: [PATCH 1/4] Test cases implemented --- ...Tests_in_'json-path-parent_json-path'.html | 5817 +++++++++++++++++ ...n_'json-path-parent_json-path-assert'.html | 1144 ++++ .../internal/JettisonProviderTest.java | 34 + .../internal/JsonOrgJsonProviderTest.java | 46 + .../internal/TapestryMappingProviderTest.java | 42 + 5 files changed, 7083 insertions(+) create mode 100644 Test Results - Tests_in_'json-path-parent_json-path'.html create mode 100644 Test Results - Tests_in_'json-path-parent_json-path-assert'.html create mode 100644 json-path/src/test/java/com/jayway/jsonpath/internal/JettisonProviderTest.java create mode 100644 json-path/src/test/java/com/jayway/jsonpath/internal/JsonOrgJsonProviderTest.java create mode 100644 json-path/src/test/java/com/jayway/jsonpath/internal/TapestryMappingProviderTest.java diff --git a/Test Results - Tests_in_'json-path-parent_json-path'.html b/Test Results - Tests_in_'json-path-parent_json-path'.html new file mode 100644 index 00000000..150a8221 --- /dev/null +++ b/Test Results - Tests_in_'json-path-parent_json-path'.html @@ -0,0 +1,5817 @@ + + + + + Test Results — Tests in 'json-path-parent.json-path' + + + + + + + + + +
+ +
+
    +
  • + +
    402 ms
    +
    DeepScanTest
    +
      +
    • + +
      233 ms
      +
      passeddeepScanPathRequireProperties
      +
    • +
    • + +
      22 ms
      +
      passedrequire_single_property
      +
    • +
    • + +
      4 ms
      +
      passedrequire_multi_property_some_match
      +
    • +
    • + +
      5 ms
      +
      passedscan_for_single_property
      +
    • +
    • + +
      1 ms
      +
      passedwhen_deep_scanning_require_properties_is_ignored_on_scan_target_but_not_on_children
      +
    • +
    • + +
      2 ms
      +
      passedrequire_single_property_ok
      +
    • +
    • + +
      3 ms
      +
      passedwhen_deep_scanning_require_properties_is_ignored_on_scan_target
      +
    • +
    • + +
      0 ms
      +
      passeddeepScanPathDefault
      +
    • +
    • + +
      4 ms
      +
      passedwhen_deep_scanning_non_array_subscription_is_ignored
      +
    • +
    • + +
      60 ms
      +
      passedwhen_deep_scanning_illegal_predicate_is_ignored
      +
    • +
    • + +
      5 ms
      +
      passedscan_for_property_path
      +
    • +
    • + +
      3 ms
      +
      passedrequire_multi_property_all_match
      +
    • +
    • + +
      1 ms
      +
      passedwhen_deep_scanning_illegal_property_access_is_ignored
      +
    • +
    • + +
      2 ms
      +
      passeddefinite_upstream_illegal_array_access_throws
      +
    • +
    • + +
      3 ms
      +
      passedwhen_deep_scanning_array_index_oob_is_ignored
      +
    • +
    • + +
      20 ms
      +
      passedscan_with_a_function_filter
      +
    • +
    • + +
      3 ms
      +
      passedwhen_deep_scanning_leaf_multi_props_work
      +
    • +
    • + +
      22 ms
      +
      passedscan_for_property_path_missing_required_property
      +
    • +
    • + +
      8 ms
      +
      passedscans_can_be_filtered
      +
    • +
    • + +
      1 ms
      +
      passedwhen_deep_scanning_null_subscription_is_ignored
      +
    • +
    +
  • +
  • + +
    13 ms
    +
    EscapeTest
    +
      +
    • + +
      13 ms
      +
      passedurls_are_not_escaped
      +
    • +
    +
  • +
  • + +
    24 ms
    +
    EvaluationListenerTest
    +
      +
    • + +
      7 ms
      +
      passedan_evaluation_lister_can_continue
      +
    • +
    • + +
      5 ms
      +
      passedevaluation_results_can_be_limited
      +
    • +
    • + +
      3 ms
      +
      passedan_evaluation_listener_can_abort_after_one_result_using_fluent_api
      +
    • +
    • + +
      5 ms
      +
      passedmultiple_evaluation_listeners_can_be_added
      +
    • +
    • + +
      2 ms
      +
      passedevaluation_listeners_can_be_cleared
      +
    • +
    • + +
      2 ms
      +
      passedan_evaluation_listener_can_abort_after_one_result_using_configuration
      +
    • +
    +
  • +
  • + +
    16 ms
    +
    FilterCompilerTest
    +
      +
    • + +
      11 ms
      +
      passedvalid_filters_compile
      +
    • +
    • + +
      1 ms
      +
      passedinvalid_path_when_string_literal_is_unquoted
      +
    • +
    • + +
      0 ms
      +
      passedcompile_and_serialize_not_exists_filter
      +
    • +
    • + +
      0 ms
      +
      passedstring_quote_style_is_serialized
      +
    • +
    • + +
      1 ms
      +
      passedstring_can_contain_path_chars
      +
    • +
    • + +
      2 ms
      +
      passedinvalid_filters_does_not_compile
      +
    • +
    • + +
      1 ms
      +
      passedor_has_lower_priority_than_and
      +
    • +
    +
  • +
  • + +
    29 ms
    +
    FilterParseTest
    +
      +
    • + +
      1 ms
      +
      passeda_filter_can_be_parsed
      +
    • +
    • + +
      6 ms
      +
      passeda_exists_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_subsetof_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_anyof_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_all_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_noneof_filter_can_be_serialized
      +
    • +
    • + +
      0 ms
      +
      passeda_lte_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_deep_path_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_gt_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passedin_string_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_lt_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_gte_filter_can_be_serialized
      +
    • +
    • + +
      0 ms
      +
      passedan_invalid_filter_can_not_be_parsed
      +
    • +
    • + +
      1 ms
      +
      passedor_combined_filters_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_doc_ref_filter_can_be_serialized
      +
    • +
    • + +
      2 ms
      +
      passeda_in_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_matches_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_regex_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_not_exists_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_nin_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_ne_filter_can_be_serialized
      +
    • +
    • + +
      0 ms
      +
      passeda_eq_filter_can_be_serialized
      +
    • +
    • + +
      0 ms
      +
      passeda_type_filter_can_be_serialized
      +
    • +
    • + +
      0 ms
      +
      passeda_contains_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_size_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passeda_not_empty_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passedand_filter_can_be_serialized
      +
    • +
    • + +
      1 ms
      +
      passedand_combined_filters_can_be_serialized
      +
    • +
    +
  • +
  • + +
    70 ms
    +
    FilterTest
    +
      +
    • + +
      5 ms
      +
      passeddouble_gte_evals
      +
    • +
    • + +
      1 ms
      +
      passedint_gte_evals
      +
    • +
    • + +
      1 ms
      +
      passedstring_size_evals
      +
    • +
    • + +
      1 ms
      +
      passedstring_ne_evals
      +
    • +
    • + +
      1 ms
      +
      passednull_size_evals
      +
    • +
    • + +
      2 ms
      +
      passedcriteria_can_be_parsed
      +
    • +
    • + +
      1 ms
      +
      passednot_array_all_evals
      +
    • +
    • + +
      2 ms
      +
      passeddouble_gt_evals
      +
    • +
    • + +
      4 ms
      +
      passedother_size_evals
      +
    • +
    • + +
      2 ms
      +
      passeddouble_lt_evals
      +
    • +
    • + +
      2 ms
      +
      passedlong_gt_evals
      +
    • +
    • + +
      2 ms
      +
      passedlong_lt_evals
      +
    • +
    • + +
      2 ms
      +
      passedlong_lte_evals
      +
    • +
    • + +
      2 ms
      +
      passedtype_evals
      +
    • +
    • + +
      3 ms
      +
      passedinline_in_criteria_evaluates
      +
    • +
    • + +
      1 ms
      +
      passedstring_gt_evals
      +
    • +
    • + +
      1 ms
      +
      passedstring_regex_evals
      +
    • +
    • + +
      1 ms
      +
      passedstring_lt_evals
      +
    • +
    • + +
      1 ms
      +
      passedlong_gte_evals
      +
    • +
    • + +
      1 ms
      +
      passednot_empty_evals
      +
    • +
    • + +
      1 ms
      +
      passedint_eq_string_evals
      +
    • +
    • + +
      1 ms
      +
      passedint_eq_evals
      +
    • +
    • + +
      1 ms
      +
      passedtestFilterWithOrShortCircuit1
      +
    • +
    • + +
      1 ms
      +
      passedtestFilterWithOrShortCircuit2
      +
    • +
    • + +
      1 ms
      +
      passednull_eq_evals
      +
    • +
    • + +
      1 ms
      +
      passedarray_size_evals
      +
    • +
    • + +
      1 ms
      +
      passedor_and_filters_evaluates
      +
    • +
    • + +
      1 ms
      +
      passedint_ne_evals
      +
    • +
    • + +
      2 ms
      +
      passedarr_eq_evals
      +
    • +
    • + +
      1 ms
      +
      passedstring_nin_evals
      +
    • +
    • + +
      2 ms
      +
      passedmatches_evals
      +
    • +
    • + +
      1 ms
      +
      passedarray_subsetof_evals
      +
    • +
    • + +
      1 ms
      +
      passednull_ne_evals
      +
    • +
    • + +
      1 ms
      +
      passedexists_evals
      +
    • +
    • + +
      1 ms
      +
      passedobj_regex_doesnt_break
      +
    • +
    • + +
      1 ms
      +
      passedjson_evals
      +
    • +
    • + +
      1 ms
      +
      passedlist_regex_evals
      +
    • +
    • + +
      1 ms
      +
      passeddouble_eq_evals
      +
    • +
    • + +
      2 ms
      +
      passedint_all_evals
      +
    • +
    • + +
      1 ms
      +
      passedlong_eq_evals
      +
    • +
    • + +
      1 ms
      +
      passedint_gt_evals
      +
    • +
    • + +
      1 ms
      +
      passedarray_noneof_evals
      +
    • +
    • + +
      1 ms
      +
      passedstring_all_evals
      +
    • +
    • + +
      1 ms
      +
      passedint_lt_evals
      +
    • +
    • + +
      0 ms
      +
      passedboolean_eq_evals
      +
    • +
    • + +
      1 ms
      +
      passedempty_evals
      +
    • +
    • + +
      0 ms
      +
      passedstring_eq_evals
      +
    • +
    • + +
      1 ms
      +
      passedstring_in_evals
      +
    • +
    • + +
      1 ms
      +
      passeddouble_ne_evals
      +
    • +
    • + +
      1 ms
      +
      passeddouble_lte_evals
      +
    • +
    • + +
      1 ms
      +
      passedint_lte_evals
      +
    • +
    • + +
      0 ms
      +
      passedlong_ne_evals
      +
    • +
    • + +
      1 ms
      +
      passedarray_anyof_evals
      +
    • +
    • + +
      1 ms
      +
      passedboolean_ne_evals
      +
    • +
    +
  • +
  • + +
    91 ms
    +
    GsonJsonProviderTest
    +
      +
    • + +
      22 ms
      +
      passedlist_of_numbers
      +
    • +
    • + +
      31 ms
      +
      passedtest_type_ref
      +
    • +
    • + +
      7 ms
      +
      passedlongs_are_unwrapped
      +
    • +
    • + +
      1 ms
      +
      passedan_object_can_be_mapped_to_pojo
      +
    • +
    • + +
      3 ms
      +
      passedsmall_bigdecimals_are_unwrapped
      +
    • +
    • + +
      4 ms
      +
      passedints_are_unwrapped
      +
    • +
    • + +
      6 ms
      +
      passeddoubles_are_unwrapped
      +
    • +
    • + +
      2 ms
      +
      passedjson_can_be_parsed
      +
    • +
    • + +
      5 ms
      +
      passedsmall_bigintegers_are_unwrapped
      +
    • +
    • + +
      2 ms
      +
      passedbigdecimals_are_unwrapped
      +
    • +
    • + +
      2 ms
      +
      passedtest_type_ref_fail
      +
    • +
    • + +
      1 ms
      +
      passedno_error_when_mapping_null
      +
    • +
    • + +
      1 ms
      +
      passedbigintegers_are_unwrapped
      +
    • +
    • + +
      1 ms
      +
      passedan_Integer_can_be_converted_to_a_Double
      +
    • +
    • + +
      2 ms
      +
      passedstrings_are_unwrapped
      +
    • +
    • + +
      1 ms
      +
      passedint_to_long_mapping
      +
    • +
    +
  • +
  • + +
    649 ms
    +
    InlineFilterTest
    +
      +
    • + +
      48 ms
      +
      [0]
      +
        +
      • + +
        2 ms
        +
        passedescaped_literals2[0]
        +
      • +
      • + +
        3 ms
        +
        passedmultiple_context_object_can_be_refered[0]
        +
      • +
      • + +
        1 ms
        +
        passedno_path_ref_in_filter_hit_all[0]
        +
      • +
      • + +
        1 ms
        +
        passedescape_pattern_before_literal[0]
        +
      • +
      • + +
        2 ms
        +
        passednegate_exists_check_primitive[0]
        +
      • +
      • + +
        5 ms
        +
        passedroot_context_can_be_referred_in_predicate[0]
        +
      • +
      • + +
        1 ms
        +
        passedpath_can_be_on_both_side_of_operator[0]
        +
      • +
      • + +
        3 ms
        +
        passedequality_check_does_not_break_evaluation[0]
        +
      • +
      • + +
        2 ms
        +
        passedpath_can_be_on_either_side_of_operator[0]
        +
      • +
      • + +
        3 ms
        +
        passedpatterns_match_against_lists[0]
        +
      • +
      • + +
        2 ms
        +
        passedescaped_literals[0]
        +
      • +
      • + +
        3 ms
        +
        passedpatterns_can_be_evaluated[0]
        +
      • +
      • + +
        7 ms
        +
        passedsimple_inline_or_statement_evaluates[0]
        +
      • +
      • + +
        1 ms
        +
        passedescape_pattern_after_literal[0]
        +
      • +
      • + +
        3 ms
        +
        passedlt_check_does_not_break_evaluation[0]
        +
      • +
      • + +
        4 ms
        +
        passednegate_exists_check[0]
        +
      • +
      • + +
        2 ms
        +
        passedpatterns_can_be_evaluated_with_ignore_case[0]
        +
      • +
      • + +
        1 ms
        +
        passedescape_pattern[0]
        +
      • +
      • + +
        1 ms
        +
        passedno_path_ref_in_filter_hit_none[0]
        +
      • +
      • + +
        1 ms
        +
        passedfilter_evaluation_does_not_break_path_evaluation[0]
        +
      • +
      +
    • +
    • + +
      42 ms
      +
      [1]
      +
        +
      • + +
        1 ms
        +
        passedescaped_literals2[1]
        +
      • +
      • + +
        13 ms
        +
        passedmultiple_context_object_can_be_refered[1]
        +
      • +
      • + +
        1 ms
        +
        passedno_path_ref_in_filter_hit_all[1]
        +
      • +
      • + +
        1 ms
        +
        passedescape_pattern_before_literal[1]
        +
      • +
      • + +
        1 ms
        +
        passednegate_exists_check_primitive[1]
        +
      • +
      • + +
        2 ms
        +
        passedroot_context_can_be_referred_in_predicate[1]
        +
      • +
      • + +
        1 ms
        +
        passedpath_can_be_on_both_side_of_operator[1]
        +
      • +
      • + +
        3 ms
        +
        passedequality_check_does_not_break_evaluation[1]
        +
      • +
      • + +
        1 ms
        +
        passedpath_can_be_on_either_side_of_operator[1]
        +
      • +
      • + +
        1 ms
        +
        passedpatterns_match_against_lists[1]
        +
      • +
      • + +
        1 ms
        +
        passedescaped_literals[1]
        +
      • +
      • + +
        2 ms
        +
        passedpatterns_can_be_evaluated[1]
        +
      • +
      • + +
        6 ms
        +
        passedsimple_inline_or_statement_evaluates[1]
        +
      • +
      • + +
        1 ms
        +
        passedescape_pattern_after_literal[1]
        +
      • +
      • + +
        3 ms
        +
        passedlt_check_does_not_break_evaluation[1]
        +
      • +
      • + +
        1 ms
        +
        passednegate_exists_check[1]
        +
      • +
      • + +
        1 ms
        +
        passedpatterns_can_be_evaluated_with_ignore_case[1]
        +
      • +
      • + +
        1 ms
        +
        passedescape_pattern[1]
        +
      • +
      • + +
        0 ms
        +
        passedno_path_ref_in_filter_hit_none[1]
        +
      • +
      • + +
        1 ms
        +
        passedfilter_evaluation_does_not_break_path_evaluation[1]
        +
      • +
      +
    • +
    • + +
      144 ms
      +
      [2]
      +
        +
      • + +
        1 ms
        +
        passedescaped_literals2[2]
        +
      • +
      • + +
        117 ms
        +
        passedmultiple_context_object_can_be_refered[2]
        +
      • +
      • + +
        2 ms
        +
        passedno_path_ref_in_filter_hit_all[2]
        +
      • +
      • + +
        1 ms
        +
        passedescape_pattern_before_literal[2]
        +
      • +
      • + +
        2 ms
        +
        passednegate_exists_check_primitive[2]
        +
      • +
      • + +
        2 ms
        +
        passedroot_context_can_be_referred_in_predicate[2]
        +
      • +
      • + +
        1 ms
        +
        passedpath_can_be_on_both_side_of_operator[2]
        +
      • +
      • + +
        3 ms
        +
        passedequality_check_does_not_break_evaluation[2]
        +
      • +
      • + +
        2 ms
        +
        passedpath_can_be_on_either_side_of_operator[2]
        +
      • +
      • + +
        1 ms
        +
        passedpatterns_match_against_lists[2]
        +
      • +
      • + +
        1 ms
        +
        passedescaped_literals[2]
        +
      • +
      • + +
        1 ms
        +
        passedpatterns_can_be_evaluated[2]
        +
      • +
      • + +
        5 ms
        +
        passedsimple_inline_or_statement_evaluates[2]
        +
      • +
      • + +
        0 ms
        +
        passedescape_pattern_after_literal[2]
        +
      • +
      • + +
        2 ms
        +
        passedlt_check_does_not_break_evaluation[2]
        +
      • +
      • + +
        1 ms
        +
        passednegate_exists_check[2]
        +
      • +
      • + +
        2 ms
        +
        passedpatterns_can_be_evaluated_with_ignore_case[2]
        +
      • +
      • + +
        0 ms
        +
        passedescape_pattern[2]
        +
      • +
      • + +
        0 ms
        +
        passedno_path_ref_in_filter_hit_none[2]
        +
      • +
      • + +
        0 ms
        +
        passedfilter_evaluation_does_not_break_path_evaluation[2]
        +
      • +
      +
    • +
    • + +
      53 ms
      +
      [3]
      +
        +
      • + +
        0 ms
        +
        passedescaped_literals2[3]
        +
      • +
      • + +
        22 ms
        +
        passedmultiple_context_object_can_be_refered[3]
        +
      • +
      • + +
        1 ms
        +
        passedno_path_ref_in_filter_hit_all[3]
        +
      • +
      • + +
        1 ms
        +
        passedescape_pattern_before_literal[3]
        +
      • +
      • + +
        1 ms
        +
        passednegate_exists_check_primitive[3]
        +
      • +
      • + +
        3 ms
        +
        passedroot_context_can_be_referred_in_predicate[3]
        +
      • +
      • + +
        1 ms
        +
        passedpath_can_be_on_both_side_of_operator[3]
        +
      • +
      • + +
        2 ms
        +
        passedequality_check_does_not_break_evaluation[3]
        +
      • +
      • + +
        2 ms
        +
        passedpath_can_be_on_either_side_of_operator[3]
        +
      • +
      • + +
        1 ms
        +
        passedpatterns_match_against_lists[3]
        +
      • +
      • + +
        0 ms
        +
        passedescaped_literals[3]
        +
      • +
      • + +
        1 ms
        +
        passedpatterns_can_be_evaluated[3]
        +
      • +
      • + +
        7 ms
        +
        passedsimple_inline_or_statement_evaluates[3]
        +
      • +
      • + +
        1 ms
        +
        passedescape_pattern_after_literal[3]
        +
      • +
      • + +
        4 ms
        +
        passedlt_check_does_not_break_evaluation[3]
        +
      • +
      • + +
        1 ms
        +
        passednegate_exists_check[3]
        +
      • +
      • + +
        1 ms
        +
        passedpatterns_can_be_evaluated_with_ignore_case[3]
        +
      • +
      • + +
        1 ms
        +
        passedescape_pattern[3]
        +
      • +
      • + +
        1 ms
        +
        passedno_path_ref_in_filter_hit_none[3]
        +
      • +
      • + +
        2 ms
        +
        passedfilter_evaluation_does_not_break_path_evaluation[3]
        +
      • +
      +
    • +
    • + +
      50 ms
      +
      [4]
      +
        +
      • + +
        23 ms
        +
        passedescaped_literals2[4]
        +
      • +
      • + +
        7 ms
        +
        passedmultiple_context_object_can_be_refered[4]
        +
      • +
      • + +
        1 ms
        +
        passedno_path_ref_in_filter_hit_all[4]
        +
      • +
      • + +
        1 ms
        +
        passedescape_pattern_before_literal[4]
        +
      • +
      • + +
        2 ms
        +
        passednegate_exists_check_primitive[4]
        +
      • +
      • + +
        2 ms
        +
        passedroot_context_can_be_referred_in_predicate[4]
        +
      • +
      • + +
        1 ms
        +
        passedpath_can_be_on_both_side_of_operator[4]
        +
      • +
      • + +
        2 ms
        +
        passedequality_check_does_not_break_evaluation[4]
        +
      • +
      • + +
        1 ms
        +
        passedpath_can_be_on_either_side_of_operator[4]
        +
      • +
      • + +
        1 ms
        +
        passedpatterns_match_against_lists[4]
        +
      • +
      • + +
        1 ms
        +
        passedescaped_literals[4]
        +
      • +
      • + +
        2 ms
        +
        passedpatterns_can_be_evaluated[4]
        +
      • +
      • + +
        2 ms
        +
        passedsimple_inline_or_statement_evaluates[4]
        +
      • +
      • + +
        0 ms
        +
        passedescape_pattern_after_literal[4]
        +
      • +
      • + +
        2 ms
        +
        passedlt_check_does_not_break_evaluation[4]
        +
      • +
      • + +
        1 ms
        +
        passednegate_exists_check[4]
        +
      • +
      • + +
        1 ms
        +
        passedpatterns_can_be_evaluated_with_ignore_case[4]
        +
      • +
      • + +
        0 ms
        +
        passedescape_pattern[4]
        +
      • +
      • + +
        0 ms
        +
        passedno_path_ref_in_filter_hit_none[4]
        +
      • +
      • + +
        0 ms
        +
        passedfilter_evaluation_does_not_break_path_evaluation[4]
        +
      • +
      +
    • +
    • + +
      312 ms
      +
      [5]
      +
        +
      • + +
        35 ms
        +
        passedescaped_literals2[5]
        +
      • +
      • + +
        259 ms
        +
        passedmultiple_context_object_can_be_refered[5]
        +
      • +
      • + +
        0 ms
        +
        passedno_path_ref_in_filter_hit_all[5]
        +
      • +
      • + +
        0 ms
        +
        passedescape_pattern_before_literal[5]
        +
      • +
      • + +
        1 ms
        +
        passednegate_exists_check_primitive[5]
        +
      • +
      • + +
        2 ms
        +
        passedroot_context_can_be_referred_in_predicate[5]
        +
      • +
      • + +
        0 ms
        +
        passedpath_can_be_on_both_side_of_operator[5]
        +
      • +
      • + +
        2 ms
        +
        passedequality_check_does_not_break_evaluation[5]
        +
      • +
      • + +
        1 ms
        +
        passedpath_can_be_on_either_side_of_operator[5]
        +
      • +
      • + +
        0 ms
        +
        passedpatterns_match_against_lists[5]
        +
      • +
      • + +
        0 ms
        +
        passedescaped_literals[5]
        +
      • +
      • + +
        1 ms
        +
        passedpatterns_can_be_evaluated[5]
        +
      • +
      • + +
        5 ms
        +
        passedsimple_inline_or_statement_evaluates[5]
        +
      • +
      • + +
        1 ms
        +
        passedescape_pattern_after_literal[5]
        +
      • +
      • + +
        2 ms
        +
        passedlt_check_does_not_break_evaluation[5]
        +
      • +
      • + +
        1 ms
        +
        passednegate_exists_check[5]
        +
      • +
      • + +
        1 ms
        +
        passedpatterns_can_be_evaluated_with_ignore_case[5]
        +
      • +
      • + +
        0 ms
        +
        passedescape_pattern[5]
        +
      • +
      • + +
        0 ms
        +
        passedno_path_ref_in_filter_hit_none[5]
        +
      • +
      • + +
        1 ms
        +
        passedfilter_evaluation_does_not_break_path_evaluation[5]
        +
      • +
      +
    • +
    +
  • +
  • + +
    1 ms
    +
    Issue_487
    +
      +
    • + +
      1 ms
      +
      passedtest_read_with_comma_1
      +
    • +
    • + +
      0 ms
      +
      passedtest_read_with_comma_2
      +
    • +
    +
  • +
  • + +
    3 ms
    +
    Issue_537
    +
      +
    • + +
      1 ms
      +
      passedtest_read
      +
    • +
    • + +
      2 ms
      +
      passedtest_renameKey
      +
    • +
    +
  • +
  • + +
    2 ms
    +
    Issue_721
    +
      +
    • + +
      1 ms
      +
      passedtest_delete_1
      +
    • +
    • + +
      1 ms
      +
      passedtest_delete_2
      +
    • +
    +
  • +
  • + +
    1 ms
    +
    Issue_762
    +
      +
    • + +
      1 ms
      +
      passedtestParseJsonValue
      +
    • +
    +
  • +
  • + +
    11 ms
    +
    Issue_786
    +
      +
    • + +
      11 ms
      +
      passedtest
      +
    • +
    +
  • +
  • + +
    45 ms
    +
    JacksonJsonNodeJsonProviderMapperSupportTest
    +
      +
    • + +
      37 ms
      +
      [0]
      +
        +
      • + +
        35 ms
        +
        passedmapMethod_withJacksonJsonNodeJsonProvider_shouldUsingJsonNodeForMappingValues[0]
        +
      • +
      • + +
        1 ms
        +
        passedsetMethod_withJacksonJsonNodeJsonProvider_shouldAcceptJsonNode[0]
        +
      • +
      • + +
        1 ms
        +
        passedreadMethod_withJacksonJsonNodeJsonProvider_shouldReturnJsonNode[0]
        +
      • +
      +
    • +
    • + +
      3 ms
      +
      [1]
      +
        +
      • + +
        1 ms
        +
        passedmapMethod_withJacksonJsonNodeJsonProvider_shouldUsingJsonNodeForMappingValues[1]
        +
      • +
      • + +
        1 ms
        +
        passedsetMethod_withJacksonJsonNodeJsonProvider_shouldAcceptJsonNode[1]
        +
      • +
      • + +
        1 ms
        +
        passedreadMethod_withJacksonJsonNodeJsonProvider_shouldReturnJsonNode[1]
        +
      • +
      +
    • +
    • + +
      5 ms
      +
      [2]
      +
        +
      • + +
        2 ms
        +
        passedmapMethod_withJacksonJsonNodeJsonProvider_shouldUsingJsonNodeForMappingValues[2]
        +
      • +
      • + +
        2 ms
        +
        passedsetMethod_withJacksonJsonNodeJsonProvider_shouldAcceptJsonNode[2]
        +
      • +
      • + +
        1 ms
        +
        passedreadMethod_withJacksonJsonNodeJsonProvider_shouldReturnJsonNode[2]
        +
      • +
      +
    • +
    +
  • +
  • + +
    141 ms
    +
    JacksonJsonNodeJsonProviderTest
    +
      +
    • + +
      2 ms
      +
      passedlist_of_numbers
      +
    • +
    • + +
      68 ms
      +
      passedtest_type_ref
      +
    • +
    • + +
      2 ms
      +
      passedlongs_are_unwrapped
      +
    • +
    • + +
      17 ms
      +
      passedbytes_json_can_be_parsed
      +
    • +
    • + +
      4 ms
      +
      passedsmall_bigdecimals_are_unwrapped
      +
    • +
    • + +
      2 ms
      +
      passedints_are_unwrapped
      +
    • +
    • + +
      1 ms
      +
      passedalways_return_same_object
      +
    • +
    • + +
      1 ms
      +
      passedjson_can_be_parsed
      +
    • +
    • + +
      2 ms
      +
      passedsmall_bigintegers_are_unwrapped
      +
    • +
    • + +
      2 ms
      +
      passedbigdecimals_are_unwrapped
      +
    • +
    • + +
      8 ms
      +
      passedtest_type_ref_fail
      +
    • +
    • + +
      3 ms
      +
      passedbigintegers_are_unwrapped
      +
    • +
    • + +
      4 ms
      +
      passedmapPropertyWithPOJO
      +
    • +
    • + +
      23 ms
      +
      passedsetPropertyWithPOJO
      +
    • +
    • + +
      2 ms
      +
      passedstrings_are_unwrapped
      +
    • +
    +
  • +
  • + +
    20 ms
    +
    JacksonTest
    +
      +
    • + +
      3 ms
      +
      passedan_object_can_be_mapped_to_pojo
      +
    • +
    • + +
      1 ms
      +
      passedsingle_quotes_work_with_in_filter
      +
    • +
    • + +
      16 ms
      +
      passedjackson_converts_dates
      +
    • +
    +
  • +
  • + +
    102 ms
    +
    JakartaJsonProviderTest
    +
      +
    • + +
      20 ms
      +
      passedread_book_length
      +
    • +
    • + +
      8 ms
      +
      passedadd_to_array_on_object
      +
    • +
    • + +
      1 ms
      +
      passedmap_array_items_can_be_renamed
      +
    • +
    • + +
      2 ms
      +
      passedsingle_match_value_can_be_mapped
      +
    • +
    • + +
      2 ms
      +
      passedread_books_with_isbn
      +
    • +
    • + +
      2 ms
      +
      passedread_book_length_using_translated_query
      +
    • +
    • + +
      1 ms
      +
      passedadd_to_object
      +
    • +
    • + +
      1 ms
      +
      passeda_path_can_be_renamed
      +
    • +
    • + +
      5 ms
      +
      passedtest_delete_2
      +
    • +
    • + +
      2 ms
      +
      passeda_path_can_be_deleted
      +
    • +
    • + +
      3 ms
      +
      passedoperations_can_chained
      +
    • +
    • + +
      2 ms
      +
      passedan_root_property_can_be_updated
      +
    • +
    • + +
      2 ms
      +
      passedan_object_can_be_read_from_bytes
      +
    • +
    • + +
      4 ms
      +
      passedan_array_criteria_can_be_updated
      +
    • +
    • + +
      3 ms
      +
      passedobject_can_be_mapped
      +
    • +
    • + +
      1 ms
      +
      passednon_existent_key_rename_not_allowed
      +
    • +
    • + +
      4 ms
      +
      passedan_deep_scan_can_update
      +
    • +
    • + +
      1 ms
      +
      passedresult_can_be_mapped_to_object
      +
    • +
    • + +
      2 ms
      +
      passedissue_97
      +
    • +
    • + +
      1 ms
      +
      passeda_filter_can_be_applied
      +
    • +
    • + +
      1 ms
      +
      passedadd_to_array
      +
    • +
    • + +
      0 ms
      +
      passedan_object_can_be_read
      +
    • +
    • + +
      3 ms
      +
      passedmulti_match_path_can_be_mapped
      +
    • +
    • + +
      6 ms
      +
      passedan_array_slice_can_be_updated
      +
    • +
    • + +
      3 ms
      +
      passedmulti_prop_delete
      +
    • +
    • + +
      3 ms
      +
      passedan_array_criteria_with_multiple_results_can_be_deleted
      +
    • +
    • + +
      1 ms
      +
      passeda_property_can_be_read
      +
    • +
    • + +
      1 ms
      +
      passedadd_to_object_on_array
      +
    • +
    • + +
      1 ms
      +
      passedan_array_index_can_be_updated
      +
    • +
    • + +
      2 ms
      +
      passedan_array_criteria_can_be_deleted
      +
    • +
    • + +
      12 ms
      +
      passedmulti_prop_update
      +
    • +
    • + +
      2 ms
      +
      passedan_filter_can_update
      +
    • +
    +
  • +
  • + +
    8 ms
    +
    JsonOrgJsonProviderTest
    +
      +
    • + +
      2 ms
      +
      passedread_book_length
      +
    • +
    • + +
      1 ms
      +
      passedread_books_with_isbn
      +
    • +
    • + +
      1 ms
      +
      passedread_book_length_using_translated_query
      +
    • +
    • + +
      2 ms
      +
      passedtest_getPropertyKeys_empty_nest_object
      +
    • +
    • + +
      1 ms
      +
      passedtest_getPropertyKeys_empty_object
      +
    • +
    • + +
      1 ms
      +
      passedresult_can_be_mapped_to_object
      +
    • +
    • + +
      0 ms
      +
      passeda_filter_can_be_applied
      +
    • +
    • + +
      0 ms
      +
      passedan_object_can_be_read
      +
    • +
    • + +
      0 ms
      +
      passeda_property_can_be_read
      +
    • +
    +
  • +
  • + +
    20 ms
    +
    JsonProviderTest
    +
      +
    • + +
      2 ms
      +
      [0]
      +
        +
      • + +
        1 ms
        +
        passedints_are_unwrapped[0]
        +
      • +
      • + +
        1 ms
        +
        passedintegers_are_unwrapped[0]
        +
      • +
      • + +
        0 ms
        +
        passedstrings_are_unwrapped[0]
        +
      • +
      +
    • +
    • + +
      3 ms
      +
      [1]
      +
        +
      • + +
        1 ms
        +
        passedints_are_unwrapped[1]
        +
      • +
      • + +
        1 ms
        +
        passedintegers_are_unwrapped[1]
        +
      • +
      • + +
        1 ms
        +
        passedstrings_are_unwrapped[1]
        +
      • +
      +
    • +
    • + +
      4 ms
      +
      [2]
      +
        +
      • + +
        2 ms
        +
        passedints_are_unwrapped[2]
        +
      • +
      • + +
        1 ms
        +
        passedintegers_are_unwrapped[2]
        +
      • +
      • + +
        1 ms
        +
        passedstrings_are_unwrapped[2]
        +
      • +
      +
    • +
    • + +
      4 ms
      +
      [3]
      +
        +
      • + +
        1 ms
        +
        passedints_are_unwrapped[3]
        +
      • +
      • + +
        2 ms
        +
        passedintegers_are_unwrapped[3]
        +
      • +
      • + +
        1 ms
        +
        passedstrings_are_unwrapped[3]
        +
      • +
      +
    • +
    • + +
      3 ms
      +
      [4]
      +
        +
      • + +
        1 ms
        +
        passedints_are_unwrapped[4]
        +
      • +
      • + +
        1 ms
        +
        passedintegers_are_unwrapped[4]
        +
      • +
      • + +
        1 ms
        +
        passedstrings_are_unwrapped[4]
        +
      • +
      +
    • +
    • + +
      4 ms
      +
      [5]
      +
        +
      • + +
        2 ms
        +
        passedints_are_unwrapped[5]
        +
      • +
      • + +
        1 ms
        +
        passedintegers_are_unwrapped[5]
        +
      • +
      • + +
        1 ms
        +
        passedstrings_are_unwrapped[5]
        +
      • +
      +
    • +
    +
  • +
  • + +
    89 ms
    +
    JsonProviderTestObjectMapping
    +
      +
    • + +
      22 ms
      +
      [0]
      +
        +
      • + +
        3 ms
        +
        passedlist_of_numbers[0]
        +
      • +
      • + +
        19 ms
        +
        passedtest_type_ref[0]
        +
      • +
      +
    • +
    • + +
      7 ms
      +
      [1]
      +
        +
      • + +
        2 ms
        +
        passedlist_of_numbers[1]
        +
      • +
      • + +
        5 ms
        +
        passedtest_type_ref[1]
        +
      • +
      +
    • +
    • + +
      5 ms
      +
      [2]
      +
        +
      • + +
        2 ms
        +
        passedlist_of_numbers[2]
        +
      • +
      • + +
        3 ms
        +
        passedtest_type_ref[2]
        +
      • +
      +
    • +
    • + +
      55 ms
      +
      [3]
      +
        +
      • + +
        1 ms
        +
        passedlist_of_numbers[3]
        +
      • +
      • + +
        54 ms
        +
        passedtest_type_ref[3]
        +
      • +
      +
    • +
    +
  • +
  • + +
    4 ms
    +
    MapperTest
    +
      +
    • + +
      1 ms
      +
      passeda_String_can_be_converted_to_a_BigDecimal
      +
    • +
    • + +
      1 ms
      +
      passeda_Long_can_be_converted_to_a_Date
      +
    • +
    • + +
      0 ms
      +
      passeda_String_can_be_converted_to_a_BigInteger
      +
    • +
    • + +
      1 ms
      +
      passedan_String_can_be_converted_to_a_Long
      +
    • +
    • + +
      0 ms
      +
      passedan_Integer_can_be_converted_to_a_Long
      +
    • +
    • + +
      0 ms
      +
      passeda_Boolean_can_be_converted_to_a_primitive_boolean
      +
    • +
    • + +
      0 ms
      +
      passeda_BigDecimal_can_be_converted_to_a_Long
      +
    • +
    • + +
      1 ms
      +
      passedan_Integer_can_be_converted_to_a_Double
      +
    • +
    • + +
      0 ms
      +
      passedan_Integer_can_be_converted_to_a_String
      +
    • +
    +
  • +
  • + +
    18 ms
    +
    MultiPropTest
    +
      +
    • + +
      4 ms
      +
      passedmulti_prop_can_be_read_from_root
      +
    • +
    • + +
      2 ms
      +
      passednon_leaf_multi_props_can_be_required
      +
    • +
    • + +
      1 ms
      +
      passedmulti_props_can_be_non_leafs
      +
    • +
    • + +
      2 ms
      +
      passedmulti_props_can_be_defaulted_to_null
      +
    • +
    • + +
      2 ms
      +
      passeddeep_scan_does_not_affect_non_leaf_multi_props
      +
    • +
    • + +
      1 ms
      +
      passedmulti_props_with_post_filter
      +
    • +
    • + +
      2 ms
      +
      passedmulti_props_can_be_in_the_middle
      +
    • +
    • + +
      3 ms
      +
      passedmulti_props_can_be_required
      +
    • +
    • + +
      1 ms
      +
      passednonexistent_non_leaf_multi_props_ignored
      +
    • +
    +
  • +
  • + +
    11 ms
    +
    OptionsTest
    +
      +
    • + +
      0 ms
      +
      passeda_definite_path_is_not_returned_as_list_by_default
      +
    • +
    • + +
      1 ms
      +
      passedwhen_property_is_required_exception_is_thrown_2
      +
    • +
    • + +
      2 ms
      +
      passeda_definite_path_can_be_returned_as_list
      +
    • +
    • + +
      1 ms
      +
      passedisbn_is_defaulted_when_option_is_provided
      +
    • +
    • + +
      1 ms
      +
      passeda_leafs_is_not_defaulted_to_null
      +
    • +
    • + +
      1 ms
      +
      passeda_leafs_can_be_defaulted_to_null
      +
    • +
    • + +
      0 ms
      +
      passeda_path_evaluation_is_returned_as_VALUE_by_default
      +
    • +
    • + +
      1 ms
      +
      passedan_indefinite_path_can_be_returned_as_list
      +
    • +
    • + +
      1 ms
      +
      passedwhen_property_is_required_exception_is_thrown
      +
    • +
    • + +
      2 ms
      +
      passedissue_suppress_exceptions_does_not_break_indefinite_evaluation
      +
    • +
    • + +
      0 ms
      +
      passeda_path_evaluation_can_be_returned_as_PATH_LIST
      +
    • +
    • + +
      1 ms
      +
      passedmulti_properties_are_merged_by_default
      +
    • +
    +
  • +
  • + +
    27 ms
    +
    PathCompilerTest
    +
      +
    • + +
      2 ms
      +
      ignoreda_square_bracket_may_not_follow_a_period
      +
    • +
    • + +
      0 ms
      +
      passeda_bracket_notation_property_token_can_be_compiled
      +
    • +
    • + +
      1 ms
      +
      passedan_inline_criteria_can_be_parsed
      +
    • +
    • + +
      0 ms
      +
      passeda_function_can_be_compiled
      +
    • +
    • + +
      2 ms
      +
      passeda_placeholder_criteria_can_be_parsed
      +
    • +
    • + +
      1 ms
      +
      passeda_property_may_not_contain_blanks
      +
    • +
    • + +
      0 ms
      +
      passedproperty_must_be_separated_by_commas
      +
    • +
    • + +
      1 ms
      +
      passedan_array_index_path_can_be_compiled
      +
    • +
    • + +
      0 ms
      +
      passeda_path_may_not_end_with_period_2
      +
    • +
    • + +
      1 ms
      +
      passedissue_predicate_can_have_and_in_regex
      +
    • +
    • + +
      1 ms
      +
      passeda_root_path_must_be_followed_by_period_or_bracket
      +
    • +
    • + +
      0 ms
      +
      passeda_path_may_not_end_with_period
      +
    • +
    • + +
      0 ms
      +
      passeda_path_may_not_end_with_scan_2
      +
    • +
    • + +
      1 ms
      +
      passedissue_predicate_brackets_must_change_priorities
      +
    • +
    • + +
      1 ms
      +
      passedissue_predicate_can_have_single_quotes_escaped
      +
    • +
    • + +
      1 ms
      +
      passedissue_predicate_can_have_bracket_in_regex
      +
    • +
    • + +
      1 ms
      +
      passedissue_predicate_can_have_double_quotes
      +
    • +
    • + +
      1 ms
      +
      passedissue_predicate_can_have_escaped_backslash_in_prop
      +
    • +
    • + +
      1 ms
      +
      passeda_multi_property_token_can_be_compiled
      +
    • +
    • + +
      1 ms
      +
      passedan_array_slice_path_can_be_compiled
      +
    • +
    • + +
      1 ms
      +
      passedissue_predicate_can_have_square_bracket_in_prop
      +
    • +
    • + +
      1 ms
      +
      passeda_root_path_can_be_compiled
      +
    • +
    • + +
      1 ms
      +
      passedissue_predicate_can_have_and_in_prop
      +
    • +
    • + +
      1 ms
      +
      passedtrailing_comma_after_list_is_not_accepted
      +
    • +
    • + +
      0 ms
      +
      ignoreda_path_must_start_with_$_or_at
      +
    • +
    • + +
      0 ms
      +
      passeda_property_chain_can_be_compiled
      +
    • +
    • + +
      1 ms
      +
      passeda_wildcard_can_be_compiled
      +
    • +
    • + +
      2 ms
      +
      passedissue_predicate_or_has_lower_priority_than_and
      +
    • +
    • + +
      1 ms
      +
      passeda_wildcard_can_follow_a_property
      +
    • +
    • + +
      0 ms
      +
      passeda_property_token_can_be_compiled
      +
    • +
    • + +
      1 ms
      +
      passeda_path_may_not_end_with_scan
      +
    • +
    • + +
      1 ms
      +
      passedissue_predicate_can_have_single_quotes
      +
    • +
    • + +
      1 ms
      +
      passedarray_indexes_must_be_separated_by_commas
      +
    • +
    • + +
      0 ms
      +
      passedaccept_only_a_single_comma_between_indexes
      +
    • +
    • + +
      0 ms
      +
      passeda_scan_token_can_be_parsed
      +
    • +
    +
  • +
  • + +
    4 ms
    +
    PredicateTest
    +
      +
    • + +
      4 ms
      +
      passedpredicates_filters_can_be_applied
      +
    • +
    +
  • +
  • + +
    13 ms
    +
    ProviderInTest
    +
      +
    • + +
      2 ms
      +
      passedtestJsonPathQuotesJsonOrg
      +
    • +
    • + +
      1 ms
      +
      passedtestJsonPathQuotesJacksonJsonNode
      +
    • +
    • + +
      1 ms
      +
      passedtestJsonPathQuotesJsonSmart
      +
    • +
    • + +
      1 ms
      +
      passedtestJsonPathQuotesGson
      +
    • +
    • + +
      2 ms
      +
      passedtestJsonPathQuotesJackson
      +
    • +
    • + +
      6 ms
      +
      passedtestJsonPathQuotesJakarta
      +
    • +
    +
  • +
  • + +
    9 ms
    +
    ReadContextTest
    +
      +
    • + +
      9 ms
      +
      passedjson_can_be_fetched_as_string
      +
    • +
    +
  • +
  • + +
    6 ms
    +
    ReturnTypeTest
    +
      +
    • + +
      1 ms
      +
      passedassert_arrays_can_be_read
      +
    • +
    • + +
      1 ms
      +
      passedassert_strings_can_be_read
      +
    • +
    • + +
      1 ms
      +
      passedclass_cast_exception_is_thrown_when_return_type_is_not_expected
      +
    • +
    • + +
      0 ms
      +
      passedassert_ints_can_be_read
      +
    • +
    • + +
      0 ms
      +
      passedassert_longs_can_be_read
      +
    • +
    • + +
      1 ms
      +
      passedassert_null_values_can_be_read
      +
    • +
    • + +
      0 ms
      +
      passedassert_maps_can_be_read
      +
    • +
    • + +
      1 ms
      +
      passeda_path_evaluation_can_be_returned_as_PATH_LIST
      +
    • +
    • + +
      1 ms
      +
      passedassert_boolean_values_can_be_read
      +
    • +
    +
  • +
  • + +
    4 ms
    +
    ScientificNotationTest
    +
      +
    • + +
      2 ms
      +
      passedtestScientificNotation
      +
    • +
    • + +
      2 ms
      +
      passedtestScientificNotation_lt_gt
      +
    • +
    +
  • +
  • + +
    28 ms
    +
    TapestryJsonProviderTest
    +
      +
    • + +
      25 ms
      +
      passedresult_can_be_mapped_to_object
      +
    • +
    • + +
      1 ms
      +
      passeda_filter_can_be_applied
      +
    • +
    • + +
      1 ms
      +
      passedan_object_can_be_read
      +
    • +
    • + +
      1 ms
      +
      passeda_property_can_be_read
      +
    • +
    +
  • +
  • + +
    1 ms
    +
    TestSuppressExceptions
    +
      +
    • + +
      1 ms
      +
      passedtestSuppressExceptionsIsRespectedPath
      +
    • +
    • + +
      0 ms
      +
      passedtestSuppressExceptionsIsRespected
      +
    • +
    +
  • +
  • + +
    57 ms
    +
    WriteTest
    +
      +
    • + +
      1 ms
      +
      passedadd_to_array_on_object
      +
    • +
    • + +
      1 ms
      +
      passeditem_can_be_added_to_root_array
      +
    • +
    • + +
      1 ms
      +
      passedkeys_in_root_containing_map_can_be_renamed
      +
    • +
    • + +
      1 ms
      +
      passedroot_object_can_not_be_updated
      +
    • +
    • + +
      1 ms
      +
      passedmap_array_items_can_be_renamed
      +
    • +
    • + +
      1 ms
      +
      passedsingle_match_value_can_be_mapped
      +
    • +
    • + +
      3 ms
      +
      passedmulti_prop_update_not_all_defined
      +
    • +
    • + +
      1 ms
      +
      passedan_array_can_be_updated
      +
    • +
    • + +
      1 ms
      +
      passedadd_to_object
      +
    • +
    • + +
      2 ms
      +
      passedan_array_child_property_can_be_updated
      +
    • +
    • + +
      1 ms
      +
      passeda_path_can_be_renamed
      +
    • +
    • + +
      1 ms
      +
      passedkey_val_can_be_added_to_root_object
      +
    • +
    • + +
      6 ms
      +
      passeda_path_can_be_deleted
      +
    • +
    • + +
      2 ms
      +
      passedoperations_can_chained
      +
    • +
    • + +
      1 ms
      +
      passedan_root_property_can_be_updated
      +
    • +
    • + +
      1 ms
      +
      passednon_map_array_items_cannot_be_renamed
      +
    • +
    • + +
      1 ms
      +
      passedan_array_criteria_can_be_updated
      +
    • +
    • + +
      5 ms
      +
      passedobject_can_be_mapped
      +
    • +
    • + +
      3 ms
      +
      passedrootCannotBeMapped
      +
    • +
    • + +
      1 ms
      +
      passednon_existent_key_rename_not_allowed
      +
    • +
    • + +
      1 ms
      +
      passedan_deep_scan_can_update
      +
    • +
    • + +
      1 ms
      +
      passedadd_to_array
      +
    • +
    • + +
      1 ms
      +
      passedmulti_match_path_can_be_mapped
      +
    • +
    • + +
      1 ms
      +
      passedmultiple_properties_cannot_be_renamed
      +
    • +
    • + +
      1 ms
      +
      passedan_array_slice_can_be_updated
      +
    • +
    • + +
      0 ms
      +
      passedmulti_prop_delete
      +
    • +
    • + +
      10 ms
      +
      passedan_array_criteria_with_multiple_results_can_be_deleted
      +
    • +
    • + +
      1 ms
      +
      passedadd_to_object_on_array
      +
    • +
    • + +
      1 ms
      +
      passedan_array_index_can_be_updated
      +
    • +
    • + +
      1 ms
      +
      passedan_array_criteria_can_be_deleted
      +
    • +
    • + +
      3 ms
      +
      passedmulti_prop_update
      +
    • +
    • + +
      1 ms
      +
      passedan_filter_can_update
      +
    • +
    +
  • +
  • + +
    13 ms
    +
    issue_613
    +
      +
    • + +
      10 ms
      +
      passedissue_613_lt_lte_test
      +
    • +
    • + +
      2 ms
      +
      passedissue_613_gt_gte_test
      +
    • +
    • + +
      1 ms
      +
      passedissue_613_eq_ne_test
      +
    • +
    +
  • +
  • + +
    1 ms
    +
    JsonContextTest
    +
      +
    • + +
      1 ms
      +
      passedcached_path_with_predicates
      +
    • +
    +
  • +
  • + +
    30 ms
    +
    UtilsTest
    +
      +
    • + +
      19 ms
      +
      passedtestNotNullThrow
      +
    • +
    • + +
      0 ms
      +
      passedtestNotEmpty
      +
    • +
    • + +
      1 ms
      +
      passedtestNotEmptyThrowNull
      +
    • +
    • + +
      1 ms
      +
      passedtestHex
      +
    • +
    • + +
      1 ms
      +
      passedtestJoin
      +
    • +
    • + +
      0 ms
      +
      passedtestToString
      +
    • +
    • + +
      1 ms
      +
      passedtestUnescapeThrow
      +
    • +
    • + +
      1 ms
      +
      passedtestOnlyOneIsTrueNonThrow
      +
    • +
    • + +
      0 ms
      +
      passedtestOnlyOneIsTrueThrow1
      +
    • +
    • + +
      1 ms
      +
      passedtestOnlyOneIsTrueThrow2
      +
    • +
    • + +
      1 ms
      +
      passedtestUnescape
      +
    • +
    • + +
      1 ms
      +
      passedtestCloseQuietly
      +
    • +
    • + +
      1 ms
      +
      passedtestConcat
      +
    • +
    • + +
      0 ms
      +
      passedtestEscape
      +
    • +
    • + +
      0 ms
      +
      passedtestIsTrue
      +
    • +
    • + +
      1 ms
      +
      passedtestIndexOf
      +
    • +
    • + +
      1 ms
      +
      passedtestNotEmptyThrowLength0
      +
    • +
    • + +
      0 ms
      +
      passedtestIsEmpty
      +
    • +
    • + +
      0 ms
      +
      passedtestNotNull
      +
    • +
    • + +
      0 ms
      +
      passedtestIsTrueThrow
      +
    • +
    +
  • +
  • + +
    2 ms
    +
    PatternFlagTest
    +
      +
    • + +
      1 ms
      +
      [0]
      +
        +
      • + +
        1 ms
        +
        passedtestParseFlags[0]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [1]
      +
        +
      • + +
        0 ms
        +
        passedtestParseFlags[1]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [2]
      +
        +
      • + +
        0 ms
        +
        passedtestParseFlags[2]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [3]
      +
        +
      • + +
        0 ms
        +
        passedtestParseFlags[3]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [4]
      +
        +
      • + +
        0 ms
        +
        passedtestParseFlags[4]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [5]
      +
        +
      • + +
        0 ms
        +
        passedtestParseFlags[5]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [6]
      +
        +
      • + +
        0 ms
        +
        passedtestParseFlags[6]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [7]
      +
        +
      • + +
        0 ms
        +
        passedtestParseFlags[7]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [8]
      +
        +
      • + +
        0 ms
        +
        passedtestParseFlags[8]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [9]
      +
        +
      • + +
        0 ms
        +
        passedtestParseFlags[9]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [10]
      +
        +
      • + +
        0 ms
        +
        passedtestParseFlags[10]
        +
      • +
      +
    • +
    • + +
      1 ms
      +
      [11]
      +
        +
      • + +
        1 ms
        +
        passedtestParseFlags[11]
        +
      • +
      +
    • +
    +
  • +
  • + +
    17 ms
    +
    RegexpEvaluatorTest
    +
      +
    • + +
      2 ms
      +
      [Regexp /true|false/ for 'true' node should evaluate to true]
      +
        +
      • + +
        2 ms
        +
        passedshould_evaluate_regular_expression[Regexp /true|false/ for 'true' node should evaluate to true]
        +
      • +
      +
    • +
    • + +
      2 ms
      +
      [Regexp /9.*9/ for 9979 node should evaluate to true]
      +
        +
      • + +
        2 ms
        +
        passedshould_evaluate_regular_expression[Regexp /9.*9/ for 9979 node should evaluate to true]
        +
      • +
      +
    • +
    • + +
      1 ms
      +
      [Regexp /fa.*se/ for false node should evaluate to true]
      +
        +
      • + +
        1 ms
        +
        passedshould_evaluate_regular_expression[Regexp /fa.*se/ for false node should evaluate to true]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [Regexp /Eval.*or/ for java.lang.String node should evaluate to false]
      +
        +
      • + +
        0 ms
        +
        passedshould_evaluate_regular_expression[Regexp /Eval.*or/ for java.lang.String node should evaluate to false]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [Regexp /JsonNode/ for { 'some': 'JsonNode' } node should evaluate to false]
      +
        +
      • + +
        0 ms
        +
        passedshould_evaluate_regular_expression[Regexp /JsonNode/ for { 'some': 'JsonNode' } node should evaluate to false]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [Regexp /PathNode/ for $ node should evaluate to false]
      +
        +
      • + +
        0 ms
        +
        passedshould_evaluate_regular_expression[Regexp /PathNode/ for $ node should evaluate to false]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [Regexp /Undefined/ for com.jayway.jsonpath.internal.filter.ValueNodes$UndefinedNode@76a36b71 node should evaluate to false]
      +
        +
      • + +
        0 ms
        +
        passedshould_evaluate_regular_expression[Regexp /Undefined/ for com.jayway.jsonpath.internal.filter.ValueNodes$UndefinedNode@76a36b71 node should evaluate to false]
        +
      • +
      +
    • +
    • + +
      1 ms
      +
      [Regexp /NullNode/ for null node should evaluate to false]
      +
        +
      • + +
        1 ms
        +
        passedshould_evaluate_regular_expression[Regexp /NullNode/ for null node should evaluate to false]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [Regexp /test/i for 'tEsT' node should evaluate to true]
      +
        +
      • + +
        0 ms
        +
        passedshould_evaluate_regular_expression[Regexp /test/i for 'tEsT' node should evaluate to true]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [Regexp /test/ for 'tEsT' node should evaluate to false]
      +
        +
      • + +
        0 ms
        +
        passedshould_evaluate_regular_expression[Regexp /test/ for 'tEsT' node should evaluate to false]
        +
      • +
      +
    • +
    • + +
      1 ms
      +
      [Regexp /�/ui for '\u00FE' node should evaluate to true]
      +
        +
      • + +
        1 ms
        +
        passedshould_evaluate_regular_expression[Regexp /�/ui for '\u00FE' node should evaluate to true]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [Regexp /�/ for '\u00FE' node should evaluate to false]
      +
        +
      • + +
        0 ms
        +
        passedshould_evaluate_regular_expression[Regexp /�/ for '\u00FE' node should evaluate to false]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [Regexp /�/i for '\u00FE' node should evaluate to false]
      +
        +
      • + +
        0 ms
        +
        passedshould_evaluate_regular_expression[Regexp /�/i for '\u00FE' node should evaluate to false]
        +
      • +
      +
    • +
    • + +
      1 ms
      +
      [Regexp /test# code/ for 'test' node should evaluate to false]
      +
        +
      • + +
        1 ms
        +
        passedshould_evaluate_regular_expression[Regexp /test# code/ for 'test' node should evaluate to false]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [Regexp /test# code/x for 'test' node should evaluate to true]
      +
        +
      • + +
        0 ms
        +
        passedshould_evaluate_regular_expression[Regexp /test# code/x for 'test' node should evaluate to true]
        +
      • +
      +
    • +
    • + +
      3 ms
      +
      [Regexp /.*test.*/d for 'my\rtest' node should evaluate to true]
      +
        +
      • + +
        3 ms
        +
        passedshould_evaluate_regular_expression[Regexp /.*test.*/d for 'my\rtest' node should evaluate to true]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [Regexp /.*test.*/ for 'my\rtest' node should evaluate to false]
      +
        +
      • + +
        0 ms
        +
        passedshould_evaluate_regular_expression[Regexp /.*test.*/ for 'my\rtest' node should evaluate to false]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [Regexp /.*tEst.*/is for 'test\ntest' node should evaluate to true]
      +
        +
      • + +
        0 ms
        +
        passedshould_evaluate_regular_expression[Regexp /.*tEst.*/is for 'test\ntest' node should evaluate to true]
        +
      • +
      +
    • +
    • + +
      0 ms
      +
      [Regexp /.*tEst.*/i for 'test\ntest' node should evaluate to false]
      +
        +
      • + +
        0 ms
        +
        passedshould_evaluate_regular_expression[Regexp /.*tEst.*/i for 'test\ntest' node should evaluate to false]
        +
      • +
      +
    • +
    • + +
      4 ms
      +
      [Regexp /^\w+$/U for '\u00FE' node should evaluate to true]
      +
        +
      • + +
        4 ms
        +
        passedshould_evaluate_regular_expression[Regexp /^\w+$/U for '\u00FE' node should evaluate to true]
        +
      • +
      +
    • +
    • + +
      1 ms
      +
      [Regexp /^\w+$/ for '\u00FE' node should evaluate to false]
      +
        +
      • + +
        1 ms
        +
        passedshould_evaluate_regular_expression[Regexp /^\w+$/ for '\u00FE' node should evaluate to false]
        +
      • +
      +
    • +
    • + +
      1 ms
      +
      [Regexp /^test$\ntest$/m for 'test\ntest' node should evaluate to true]
      +
        +
      • + +
        1 ms
        +
        passedshould_evaluate_regular_expression[Regexp /^test$\ntest$/m for 'test\ntest' node should evaluate to true]
        +
      • +
      +
    • +
    +
  • +
  • + +
    0 ms
    +
    RelationalOperatorTest
    +
      +
    • + +
      0 ms
      +
      passedtestFromStringWithTurkishLocale
      +
    • +
    • + +
      0 ms
      +
      passedtestFromStringWithEnglishLocale
      +
    • +
    +
  • +
  • + +
    151 ms
    +
    Issue191
    +
      +
    • + +
      44 ms
      +
      passedtestResultSetNumericComputationTail
      +
    • +
    • + +
      35 ms
      +
      passedtestResultSetNumericComputationRecursiveReplacement
      +
    • +
    • + +
      17 ms
      +
      passedtestConcatWithNumericValueAsString
      +
    • +
    • + +
      17 ms
      +
      passedtestResultSetNumericComputation
      +
    • +
    • + +
      15 ms
      +
      passedtestConcatResultSet
      +
    • +
    • + +
      23 ms
      +
      passedtestMultipleResultSetSums
      +
    • +
    +
  • +
  • + +
    2 ms
    +
    Issue234
    +
      +
    • + +
      2 ms
      +
      passedtestIssue234
      +
    • +
    +
  • +
  • + +
    2 ms
    +
    Issue273
    +
      +
    • + +
      1 ms
      +
      passedtestGetPropertyFromObject
      +
    • +
    • + +
      1 ms
      +
      passedtestGetPropertyFromArray
      +
    • +
    +
  • +
  • + +
    4 ms
    +
    Issue612
    +
      +
    • + +
      2 ms
      +
      passedtest
      +
    • +
    • + +
      2 ms
      +
      passedtest2
      +
    • +
    +
  • +
  • + +
    2 ms
    +
    Issue629
    +
      +
    • + +
      1 ms
      +
      passedtestUncloseParenthesisWithNestedCall
      +
    • +
    • + +
      1 ms
      +
      passedtestUncloseParenthesis
      +
    • +
    +
  • +
  • + +
    4 ms
    +
    Issue680
    +
      +
    • + +
      1 ms
      +
      passedtestIssue680concat_2
      +
    • +
    • + +
      2 ms
      +
      passedtestIssue680min
      +
    • +
    • + +
      1 ms
      +
      passedtestIssue680concat
      +
    • +
    +
  • +
  • + +
    3 ms
    +
    JSONEntityPathFunctionTest
    +
      +
    • + +
      1 ms
      +
      passedtestPredicateWithFunctionCallSingleMatch
      +
    • +
    • + +
      0 ms
      +
      passedtestLengthOfTextArray
      +
    • +
    • + +
      1 ms
      +
      passedtestLengthOfStructure
      +
    • +
    • + +
      1 ms
      +
      passedtestPredicateWithFunctionCallTwoMatches
      +
    • +
    • + +
      0 ms
      +
      passedtestLengthOfNumberArray
      +
    • +
    +
  • +
  • + +
    23 ms
    +
    KeySetFunctionTest
    +
      +
    • + +
      23 ms
      +
      passedtestKeySet
      +
    • +
    +
  • +
  • + +
    73 ms
    +
    NestedFunctionTest
    +
      +
    • + +
      8 ms
      +
      [0]
      +
        +
      • + +
        2 ms
        +
        passedtestAppendNumber[0]
        +
      • +
      • + +
        1 ms
        +
        passedtestArrayAverageFunctionCallWithParameters[0]
        +
      • +
      • + +
        1 ms
        +
        passedtestParameterAverageFunctionCall[0]
        +
      • +
      • + +
        0 ms
        +
        passedtestArrayAverageFunctionCall[0]
        +
      • +
      • + +
        1 ms
        +
        passedtestSimpleLiteralArgument[0]
        +
      • +
      • + +
        0 ms
        +
        passedtestErrantCloseBracketNegative[0]
        +
      • +
      • + +
        1 ms
        +
        passedtestJsonInnerArgumentArray[0]
        +
      • +
      • + +
        0 ms
        +
        passedtestErrantCloseBraceNegative[0]
        +
      • +
      • + +
        1 ms
        +
        passedtestStringConcat[0]
        +
      • +
      • + +
        0 ms
        +
        passedtestAppendTextAndNumberThenSum[0]
        +
      • +
      • + +
        1 ms
        +
        passedtestStringConcatWithJSONParameter[0]
        +
      • +
      • + +
        0 ms
        +
        passedtestUnclosedFunctionCallNegative[0]
        +
      • +
      • + +
        0 ms
        +
        passedtestStringAndNumberConcat[0]
        +
      • +
      +
    • +
    • + +
      11 ms
      +
      [1]
      +
        +
      • + +
        1 ms
        +
        passedtestAppendNumber[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestArrayAverageFunctionCallWithParameters[1]
        +
      • +
      • + +
        2 ms
        +
        passedtestParameterAverageFunctionCall[1]
        +
      • +
      • + +
        0 ms
        +
        passedtestArrayAverageFunctionCall[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestSimpleLiteralArgument[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestErrantCloseBracketNegative[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestJsonInnerArgumentArray[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestErrantCloseBraceNegative[1]
        +
      • +
      • + +
        0 ms
        +
        passedtestStringConcat[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestAppendTextAndNumberThenSum[1]
        +
      • +
      • + +
        0 ms
        +
        passedtestStringConcatWithJSONParameter[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestUnclosedFunctionCallNegative[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestStringAndNumberConcat[1]
        +
      • +
      +
    • +
    • + +
      12 ms
      +
      [2]
      +
        +
      • + +
        1 ms
        +
        passedtestAppendNumber[2]
        +
      • +
      • + +
        0 ms
        +
        passedtestArrayAverageFunctionCallWithParameters[2]
        +
      • +
      • + +
        0 ms
        +
        passedtestParameterAverageFunctionCall[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestArrayAverageFunctionCall[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestSimpleLiteralArgument[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestErrantCloseBracketNegative[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestJsonInnerArgumentArray[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestErrantCloseBraceNegative[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestStringConcat[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestAppendTextAndNumberThenSum[2]
        +
      • +
      • + +
        2 ms
        +
        passedtestStringConcatWithJSONParameter[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestUnclosedFunctionCallNegative[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestStringAndNumberConcat[2]
        +
      • +
      +
    • +
    • + +
      24 ms
      +
      [3]
      +
        +
      • + +
        6 ms
        +
        passedtestAppendNumber[3]
        +
      • +
      • + +
        2 ms
        +
        passedtestArrayAverageFunctionCallWithParameters[3]
        +
      • +
      • + +
        3 ms
        +
        passedtestParameterAverageFunctionCall[3]
        +
      • +
      • + +
        2 ms
        +
        passedtestArrayAverageFunctionCall[3]
        +
      • +
      • + +
        2 ms
        +
        passedtestSimpleLiteralArgument[3]
        +
      • +
      • + +
        2 ms
        +
        passedtestErrantCloseBracketNegative[3]
        +
      • +
      • + +
        1 ms
        +
        passedtestJsonInnerArgumentArray[3]
        +
      • +
      • + +
        1 ms
        +
        passedtestErrantCloseBraceNegative[3]
        +
      • +
      • + +
        1 ms
        +
        passedtestStringConcat[3]
        +
      • +
      • + +
        1 ms
        +
        passedtestAppendTextAndNumberThenSum[3]
        +
      • +
      • + +
        1 ms
        +
        passedtestStringConcatWithJSONParameter[3]
        +
      • +
      • + +
        0 ms
        +
        passedtestUnclosedFunctionCallNegative[3]
        +
      • +
      • + +
        2 ms
        +
        passedtestStringAndNumberConcat[3]
        +
      • +
      +
    • +
    • + +
      5 ms
      +
      [4]
      +
        +
      • + +
        1 ms
        +
        passedtestAppendNumber[4]
        +
      • +
      • + +
        0 ms
        +
        passedtestArrayAverageFunctionCallWithParameters[4]
        +
      • +
      • + +
        0 ms
        +
        passedtestParameterAverageFunctionCall[4]
        +
      • +
      • + +
        0 ms
        +
        passedtestArrayAverageFunctionCall[4]
        +
      • +
      • + +
        1 ms
        +
        passedtestSimpleLiteralArgument[4]
        +
      • +
      • + +
        0 ms
        +
        passedtestErrantCloseBracketNegative[4]
        +
      • +
      • + +
        1 ms
        +
        passedtestJsonInnerArgumentArray[4]
        +
      • +
      • + +
        0 ms
        +
        passedtestErrantCloseBraceNegative[4]
        +
      • +
      • + +
        0 ms
        +
        passedtestStringConcat[4]
        +
      • +
      • + +
        1 ms
        +
        passedtestAppendTextAndNumberThenSum[4]
        +
      • +
      • + +
        1 ms
        +
        passedtestStringConcatWithJSONParameter[4]
        +
      • +
      • + +
        0 ms
        +
        passedtestUnclosedFunctionCallNegative[4]
        +
      • +
      • + +
        0 ms
        +
        passedtestStringAndNumberConcat[4]
        +
      • +
      +
    • +
    • + +
      13 ms
      +
      [5]
      +
        +
      • + +
        1 ms
        +
        passedtestAppendNumber[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestArrayAverageFunctionCallWithParameters[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestParameterAverageFunctionCall[5]
        +
      • +
      • + +
        0 ms
        +
        passedtestArrayAverageFunctionCall[5]
        +
      • +
      • + +
        2 ms
        +
        passedtestSimpleLiteralArgument[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestErrantCloseBracketNegative[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestJsonInnerArgumentArray[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestErrantCloseBraceNegative[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestStringConcat[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestAppendTextAndNumberThenSum[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestStringConcatWithJSONParameter[5]
        +
      • +
      • + +
        0 ms
        +
        passedtestUnclosedFunctionCallNegative[5]
        +
      • +
      • + +
        2 ms
        +
        passedtestStringAndNumberConcat[5]
        +
      • +
      +
    • +
    +
  • +
  • + +
    48 ms
    +
    NumericPathFunctionTest
    +
      +
    • + +
      5 ms
      +
      [0]
      +
        +
      • + +
        1 ms
        +
        passedtestAverageOfEmptyListNegative[0]
        +
      • +
      • + +
        0 ms
        +
        passedtestMinOfDouble[0]
        +
      • +
      • + +
        0 ms
        +
        passedtestMaxOfDouble[0]
        +
      • +
      • + +
        1 ms
        +
        passedtestMaxOfEmptyListNegative[0]
        +
      • +
      • + +
        0 ms
        +
        passedtestStddevOfEmptyListNegative[0]
        +
      • +
      • + +
        1 ms
        +
        passedtestSumOfDouble[0]
        +
      • +
      • + +
        0 ms
        +
        passedtestAverageOfDoubles[0]
        +
      • +
      • + +
        0 ms
        +
        passedtestStdDevOfDouble[0]
        +
      • +
      • + +
        1 ms
        +
        passedtestSumOfEmptyListNegative[0]
        +
      • +
      • + +
        1 ms
        +
        passedtestMinOfEmptyListNegative[0]
        +
      • +
      +
    • +
    • + +
      10 ms
      +
      [1]
      +
        +
      • + +
        1 ms
        +
        passedtestAverageOfEmptyListNegative[1]
        +
      • +
      • + +
        0 ms
        +
        passedtestMinOfDouble[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestMaxOfDouble[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestMaxOfEmptyListNegative[1]
        +
      • +
      • + +
        2 ms
        +
        passedtestStddevOfEmptyListNegative[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestSumOfDouble[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestAverageOfDoubles[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestStdDevOfDouble[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestSumOfEmptyListNegative[1]
        +
      • +
      • + +
        1 ms
        +
        passedtestMinOfEmptyListNegative[1]
        +
      • +
      +
    • +
    • + +
      5 ms
      +
      [2]
      +
        +
      • + +
        0 ms
        +
        passedtestAverageOfEmptyListNegative[2]
        +
      • +
      • + +
        0 ms
        +
        passedtestMinOfDouble[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestMaxOfDouble[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestMaxOfEmptyListNegative[2]
        +
      • +
      • + +
        0 ms
        +
        passedtestStddevOfEmptyListNegative[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestSumOfDouble[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestAverageOfDoubles[2]
        +
      • +
      • + +
        0 ms
        +
        passedtestStdDevOfDouble[2]
        +
      • +
      • + +
        0 ms
        +
        passedtestSumOfEmptyListNegative[2]
        +
      • +
      • + +
        1 ms
        +
        passedtestMinOfEmptyListNegative[2]
        +
      • +
      +
    • +
    • + +
      7 ms
      +
      [3]
      +
        +
      • + +
        1 ms
        +
        passedtestAverageOfEmptyListNegative[3]
        +
      • +
      • + +
        1 ms
        +
        passedtestMinOfDouble[3]
        +
      • +
      • + +
        0 ms
        +
        passedtestMaxOfDouble[3]
        +
      • +
      • + +
        0 ms
        +
        passedtestMaxOfEmptyListNegative[3]
        +
      • +
      • + +
        1 ms
        +
        passedtestStddevOfEmptyListNegative[3]
        +
      • +
      • + +
        1 ms
        +
        passedtestSumOfDouble[3]
        +
      • +
      • + +
        1 ms
        +
        passedtestAverageOfDoubles[3]
        +
      • +
      • + +
        1 ms
        +
        passedtestStdDevOfDouble[3]
        +
      • +
      • + +
        1 ms
        +
        passedtestSumOfEmptyListNegative[3]
        +
      • +
      • + +
        0 ms
        +
        passedtestMinOfEmptyListNegative[3]
        +
      • +
      +
    • +
    • + +
      9 ms
      +
      [4]
      +
        +
      • + +
        0 ms
        +
        passedtestAverageOfEmptyListNegative[4]
        +
      • +
      • + +
        1 ms
        +
        passedtestMinOfDouble[4]
        +
      • +
      • + +
        1 ms
        +
        passedtestMaxOfDouble[4]
        +
      • +
      • + +
        1 ms
        +
        passedtestMaxOfEmptyListNegative[4]
        +
      • +
      • + +
        0 ms
        +
        passedtestStddevOfEmptyListNegative[4]
        +
      • +
      • + +
        1 ms
        +
        passedtestSumOfDouble[4]
        +
      • +
      • + +
        1 ms
        +
        passedtestAverageOfDoubles[4]
        +
      • +
      • + +
        1 ms
        +
        passedtestStdDevOfDouble[4]
        +
      • +
      • + +
        1 ms
        +
        passedtestSumOfEmptyListNegative[4]
        +
      • +
      • + +
        2 ms
        +
        passedtestMinOfEmptyListNegative[4]
        +
      • +
      +
    • +
    • + +
      12 ms
      +
      [5]
      +
        +
      • + +
        1 ms
        +
        passedtestAverageOfEmptyListNegative[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestMinOfDouble[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestMaxOfDouble[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestMaxOfEmptyListNegative[5]
        +
      • +
      • + +
        2 ms
        +
        passedtestStddevOfEmptyListNegative[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestSumOfDouble[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestAverageOfDoubles[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestStdDevOfDouble[5]
        +
      • +
      • + +
        2 ms
        +
        passedtestSumOfEmptyListNegative[5]
        +
      • +
      • + +
        1 ms
        +
        passedtestMinOfEmptyListNegative[5]
        +
      • +
      +
    • +
    +
  • +
  • + +
    9 ms
    +
    SequentialPathFunctionTest
    +
      +
    • + +
      3 ms
      +
      passedtestFirstOfText
      +
    • +
    • + +
      1 ms
      +
      passedtestFirstOfNumbers
      +
    • +
    • + +
      1 ms
      +
      passedtestLastOfNumbers
      +
    • +
    • + +
      2 ms
      +
      passedtestIndexOfText
      +
    • +
    • + +
      2 ms
      +
      passedtestIndexOfNumbers
      +
    • +
    • + +
      0 ms
      +
      passedtestLastOfText
      +
    • +
    +
  • +
  • + +
    0 ms
    +
    PathTokenTest
    +
      +
    • + +
      0 ms
      +
      passedis_upstream_definite_in_complex_case
      +
    • +
    • + +
      0 ms
      +
      passedis_upstream_definite_in_simple_case
      +
    • +
    +
  • +
  • + +
    18 ms
    +
    ArraySlicingTest
    +
      +
    • + +
      15 ms
      +
      passedget_between_index_2
      +
    • +
    • + +
      1 ms
      +
      passedget_between_index_3
      +
    • +
    • + +
      0 ms
      +
      passedget_by_position
      +
    • +
    • + +
      1 ms
      +
      passedget_from_tail
      +
    • +
    • + +
      1 ms
      +
      passedget_between_index
      +
    • +
    • + +
      0 ms
      +
      passedget_from_index
      +
    • +
    • + +
      0 ms
      +
      passedget_from_tail_index
      +
    • +
    • + +
      0 ms
      +
      passedget_indexes
      +
    • +
    • + +
      0 ms
      +
      passedget_between_index_out_of_bounds
      +
    • +
    +
  • +
  • + +
    15 ms
    +
    ComplianceTest
    +
      +
    • + +
      10 ms
      +
      passedtest_four
      +
    • +
    • + +
      0 ms
      +
      passedtest_one
      +
    • +
    • + +
      1 ms
      +
      passedtest_two
      +
    • +
    • + +
      4 ms
      +
      passedtest_three
      +
    • +
    +
  • +
  • + +
    23 ms
    +
    FilterTest
    +
      +
    • + +
      1 ms
      +
      passedlte_filters_evaluates
      +
    • +
    • + +
      1 ms
      +
      passedfilters_can_be_combined
      +
    • +
    • + +
      2 ms
      +
      passedarrays_of_objects_can_be_filtered
      +
    • +
    • + +
      1 ms
      +
      passedcombine_filter_deep_criteria
      +
    • +
    • + +
      0 ms
      +
      passedne_filters_evaluates
      +
    • +
    • + +
      1 ms
      +
      passednin_filters_evaluates
      +
    • +
    • + +
      1 ms
      +
      passednot_empty_filter_evaluates
      +
    • +
    • + +
      1 ms
      +
      passedlt_filters_evaluates
      +
    • +
    • + +
      0 ms
      +
      passedcontains_filter_evaluates_on_string
      +
    • +
    • + +
      0 ms
      +
      passedcontains_filter_evaluates_on_array
      +
    • +
    • + +
      1 ms
      +
      passedsize_filters_evaluates
      +
    • +
    • + +
      3 ms
      +
      passedarrays_of_maps_can_be_filtered
      +
    • +
    • + +
      1 ms
      +
      passedgte_filters_evaluates
      +
    • +
    • + +
      2 ms
      +
      passedall_filters_evaluates
      +
    • +
    • + +
      1 ms
      +
      passedfilters_can_contain_json_path_expressions
      +
    • +
    • + +
      2 ms
      +
      passedin_filters_evaluates
      +
    • +
    • + +
      1 ms
      +
      passedexists_filters_evaluates
      +
    • +
    • + +
      1 ms
      +
      passedpattern_filters_evaluates
      +
    • +
    • + +
      1 ms
      +
      passedgt_filters_evaluates
      +
    • +
    • + +
      2 ms
      +
      passedtype_filters_evaluates
      +
    • +
    +
  • +
  • + +
    65 ms
    +
    IssuesTest
    +
      +
    • + +
      4 ms
      +
      passedissue_28_int
      +
    • +
    • + +
      0 ms
      +
      passeda_test
      +
    • +
    • + +
      0 ms
      +
      passedarray_root
      +
    • +
    • + +
      1 ms
      +
      passedfull_ones_can_be_filtered
      +
    • +
    • + +
      1 ms
      +
      passedusing_square_bracket_literal_path
      +
    • +
    • + +
      1 ms
      +
      passedgithub_89
      +
    • +
    • + +
      3 ms
      +
      passedissue_129
      +
    • +
    • + +
      1 ms
      +
      passedissue_11b
      +
    • +
    • + +
      6 ms
      +
      passedissue_131
      +
    • +
    • + +
      1 ms
      +
      passedissue_143
      +
    • +
    • + +
      1 ms
      +
      passedissue_151
      +
    • +
    • + +
      3 ms
      +
      passedissue_170
      +
    • +
    • + +
      1 ms
      +
      passedissue_171
      +
    • +
    • + +
      0 ms
      +
      passedissue_22b
      +
    • +
    • + +
      1 ms
      +
      passedissue_22c
      +
    • +
    • + +
      1 ms
      +
      passedissue_309
      +
    • +
    • + +
      3 ms
      +
      passedissue_378
      +
    • +
    • + +
      1 ms
      +
      passedissue_11
      +
    • +
    • + +
      1 ms
      +
      passedissue_15
      +
    • +
    • + +
      0 ms
      +
      passedissue_22
      +
    • +
    • + +
      3 ms
      +
      passedissue_24
      +
    • +
    • + +
      0 ms
      +
      passedissue_26
      +
    • +
    • + +
      1 ms
      +
      passedissue_30
      +
    • +
    • + +
      0 ms
      +
      passedissue_32
      +
    • +
    • + +
      1 ms
      +
      passedissue_33
      +
    • +
    • + +
      1 ms
      +
      passedissue_36
      +
    • +
    • + +
      0 ms
      +
      passedissue_37
      +
    • +
    • + +
      0 ms
      +
      passedissue_38
      +
    • +
    • + +
      1 ms
      +
      passedissue_39
      +
    • +
    • + +
      0 ms
      +
      passedissue_42
      +
    • +
    • + +
      1 ms
      +
      passedissue_43
      +
    • +
    • + +
      0 ms
      +
      passedissue_45
      +
    • +
    • + +
      4 ms
      +
      passedissue_46
      +
    • +
    • + +
      1 ms
      +
      passedissue_60
      +
    • +
    • + +
      1 ms
      +
      passedissue_71
      +
    • +
    • + +
      1 ms
      +
      passedissue_76
      +
    • +
    • + +
      2 ms
      +
      passedissue_79
      +
    • +
    • + +
      1 ms
      +
      passedissue_90
      +
    • +
    • + +
      3 ms
      +
      passedissue_97
      +
    • +
    • + +
      1 ms
      +
      passedissue_99
      +
    • +
    • + +
      1 ms
      +
      passedissue_29_a
      +
    • +
    • + +
      1 ms
      +
      passedissue_29_b
      +
    • +
    • + +
      3 ms
      +
      passedissue_94_1
      +
    • +
    • + +
      0 ms
      +
      passedissue_94_2
      +
    • +
    • + +
      1 ms
      +
      passedissue_28_boolean
      +
    • +
    • + +
      0 ms
      +
      passedissue_114_a
      +
    • +
    • + +
      1 ms
      +
      passedissue_114_b
      +
    • +
    • + +
      1 ms
      +
      passedissue_114_c
      +
    • +
    • + +
      1 ms
      +
      passedissue_114_d
      +
    • +
    • + +
      1 ms
      +
      passedissue_131_2
      +
    • +
    • + +
      1 ms
      +
      passedissue_131_3
      +
    • +
    • + +
      1 ms
      +
      passedissue_620_1
      +
    • +
    • + +
      0 ms
      +
      passedissue_620_2
      +
    • +
    • + +
      1 ms
      +
      passedstack_overflow_question_1
      +
    • +
    • + +
      0 ms
      +
      passedissue_28_string
      +
    • +
    • + +
      0 ms
      +
      passedissue_x
      +
    • +
    +
  • +
  • + +
    25 ms
    +
    JsonPathTest
    +
      +
    • + +
      1 ms
      +
      passedall_books_with_category_reference
      +
    • +
    • + +
      1 ms
      +
      passedread_store_book_wildcard
      +
    • +
    • + +
      0 ms
      +
      passednull_object_in_path
      +
    • +
    • + +
      0 ms
      +
      passeddot_in_predicate_works
      +
    • +
    • + +
      0 ms
      +
      passedfilter_an_array_on_index
      +
    • +
    • + +
      1 ms
      +
      passedbracket_notation_can_be_used_in_path
      +
    • +
    • + +
      2 ms
      +
      passedread_store_book_filter_by_isbn
      +
    • +
    • + +
      1 ms
      +
      passedread_store_book_pull_first_2
      +
    • +
    • + +
      0 ms
      +
      passedall_store_properties
      +
    • +
    • + +
      1 ms
      +
      passeddots_in_predicate_works
      +
    • +
    • + +
      0 ms
      +
      passedmissing_prop
      +
    • +
    • + +
      0 ms
      +
      passedall_prices_in_store
      +
    • +
    • + +
      1 ms
      +
      passedread_store_book_author
      +
    • +
    • + +
      0 ms
      +
      passedfilter_an_array
      +
    • +
    • + +
      1 ms
      +
      passedread_store_book_1
      +
    • +
    • + +
      1 ms
      +
      passedinvalid_paths_throw_invalid_path_exception
      +
    • +
    • + +
      1 ms
      +
      passedall_members_of_all_documents
      +
    • +
    • + +
      7 ms
      +
      passedexists_filter_with_nested_path
      +
    • +
    • + +
      2 ms
      +
      passedaccess_index_out_of_bounds_does_not_throw_exception
      +
    • +
    • + +
      0 ms
      +
      passedread_path_with_colon
      +
    • +
    • + +
      1 ms
      +
      passedall_books
      +
    • +
    • + +
      0 ms
      +
      passedread_store_book_index_0_and_1
      +
    • +
    • + +
      0 ms
      +
      passedprevent_stack_overflow_error_when_unclosed_property
      +
    • +
    • + +
      0 ms
      +
      passedbracket_notation_with_dots
      +
    • +
    • + +
      1 ms
      +
      passedarray_start_expands
      +
    • +
    • + +
      1 ms
      +
      passedall_authors
      +
    • +
    • + +
      1 ms
      +
      passedall_books_cheaper_than_10
      +
    • +
    • + +
      0 ms
      +
      passedread_document_from_root
      +
    • +
    • + +
      1 ms
      +
      passedaccess_array_by_index_from_tail
      +
    • +
    +
  • +
  • + +
    1 ms
    +
    JsonProviderTest
    +
      +
    • + +
      1 ms
      +
      passedparse_array
      +
    • +
    • + +
      0 ms
      +
      passedparse_document
      +
    • +
    +
  • +
  • + +
    8 ms
    +
    NullHandlingTest
    +
      +
    • + +
      1 ms
      +
      passedlast_token_defaults_to_null
      +
    • +
    • + +
      1 ms
      +
      passednot_defined_property_throws_PathNotFoundException
      +
    • +
    • + +
      1 ms
      +
      passedpath
      +
    • +
    • + +
      1 ms
      +
      passedpath2
      +
    • +
    • + +
      1 ms
      +
      passednull_property_returns_null
      +
    • +
    • + +
      3 ms
      +
      passedthe_age_of_all_with_age_defined
      +
    • +
    +
  • +
  • + +
    3 ms
    +
    ArrayIndexFilterTest
    +
      +
    • + +
      1 ms
      +
      passedtail_grabs_correct
      +
    • +
    • + +
      0 ms
      +
      passedhead_grabs_correct
      +
    • +
    • + +
      1 ms
      +
      passedcan_access_items_from_end_with_negative_index
      +
    • +
    • + +
      0 ms
      +
      passedhead_does_not_throw_when_index_out_of_bounds
      +
    • +
    • + +
      1 ms
      +
      passedtail_does_not_throw_when_index_out_of_bounds
      +
    • +
    • + +
      0 ms
      +
      passedhead_tail_grabs_correct
      +
    • +
    +
  • +
  • + +
    3 ms
    +
    ArrayPathTokenTest
    +
      +
    • + +
      1 ms
      +
      passedarray_can_be_sliced_from_2_from_tail
      +
    • +
    • + +
      0 ms
      +
      passedarray_can_be_sliced_between
      +
    • +
    • + +
      1 ms
      +
      passedarray_can_be_sliced_to_2
      +
    • +
    • + +
      0 ms
      +
      passedarray_can_select_multiple_indexes
      +
    • +
    • + +
      0 ms
      +
      passedarray_can_be_sliced_from_2
      +
    • +
    • + +
      1 ms
      +
      passedarray_can_be_sliced_to_2_from_tail
      +
    • +
    +
  • +
  • + +
    4 ms
    +
    PredicatePathTokenTest
    +
      +
    • + +
      1 ms
      +
      passeda_filter_predicate_can_be_evaluated_on_decimal_criteria
      +
    • +
    • + +
      0 ms
      +
      passeda_filter_predicate_can_be_evaluated_on_string_criteria
      +
    • +
    • + +
      1 ms
      +
      passedmultiple_criteria_can_be_used
      +
    • +
    • + +
      0 ms
      +
      passedboolean_criteria_evaluates
      +
    • +
    • + +
      1 ms
      +
      passeda_filter_predicate_can_be_evaluated_on_int_criteria
      +
    • +
    • + +
      1 ms
      +
      passedfield_existence_can_be_checked
      +
    • +
    +
  • +
  • + +
    3 ms
    +
    PropertyPathTokenTest
    +
      +
    • + +
      1 ms
      +
      passedmap_value_can_be_read_from_map
      +
    • +
    • + +
      1 ms
      +
      passedmap_value_can_be_read_from_child_map
      +
    • +
    • + +
      0 ms
      +
      passedproperty_not_found_deep
      +
    • +
    • + +
      1 ms
      +
      passedmap_value_can_be_read_from_array
      +
    • +
    • + +
      0 ms
      +
      passedproperty_not_found
      +
    • +
    • + +
      0 ms
      +
      passedproperty_not_found_option_throw
      +
    • +
    +
  • +
  • + +
    6 ms
    +
    ScanPathTokenTest
    +
      +
    • + +
      1 ms
      +
      passeda_document_can_be_scanned_for_existence
      +
    • +
    • + +
      2 ms
      +
      passeda_document_can_be_scanned_for_wildcard
      +
    • +
    • + +
      0 ms
      +
      passeda_document_can_be_scanned_for_property
      +
    • +
    • + +
      1 ms
      +
      passeda_document_can_be_scanned_for_wildcard2
      +
    • +
    • + +
      0 ms
      +
      passeda_document_can_be_scanned_for_wildcard3
      +
    • +
    • + +
      0 ms
      +
      passeda_document_can_be_scanned_for_property_path
      +
    • +
    • + +
      2 ms
      +
      passeda_document_can_be_scanned_for_predicate_match
      +
    • +
    +
  • +
  • + +
    2 ms
    +
    TestInternal3
    +
      +
    • + +
      1 ms
      +
      passeda_definite_array_item_property_can_be_evaluated
      +
    • +
    • + +
      1 ms
      +
      passeda_wildcard_array_item_property_can_be_evaluated
      +
    • +
    • + +
      0 ms
      +
      passeda_root_object_can_be_evaluated
      +
    • +
    +
  • +
+
+
+ + + diff --git a/Test Results - Tests_in_'json-path-parent_json-path-assert'.html b/Test Results - Tests_in_'json-path-parent_json-path-assert'.html new file mode 100644 index 00000000..48e421c7 --- /dev/null +++ b/Test Results - Tests_in_'json-path-parent_json-path-assert'.html @@ -0,0 +1,1144 @@ + + + + + Test Results — Tests in 'json-path-parent.json-path-assert' + + + + + + + + + +
+ +
+
    +
  • + +
    433 ms
    +
    JsonAssertTest
    +
      +
    • + +
      251 ms
      +
      passedassert_that_invalid_path_is_thrown
      +
    • +
    • + +
      30 ms
      +
      passedends_with_evalueates
      +
    • +
    • + +
      6 ms
      +
      passedlinks_document
      +
    • +
    • + +
      1 ms
      +
      passeda_document_can_be_expected_not_to_contain_a_path
      +
    • +
    • + +
      19 ms
      +
      passedlist_content_can_be_asserted_with_matcher
      +
    • +
    • + +
      3 ms
      +
      passedtestAssertEqualsInteger
      +
    • +
    • + +
      3 ms
      +
      passedpath_including_wildcard_path_followed_by_another_path_concatenates_results_to_list
      +
    • +
    • + +
      3 ms
      +
      passeda_value_can_asserted_to_be_null
      +
    • +
    • + +
      4 ms
      +
      passedtestAssertEqualsIntegerInvalidField
      +
    • +
    • + +
      1 ms
      +
      passedtestNotDefined
      +
    • +
    • + +
      82 ms
      +
      passedassert_gears
      +
    • +
    • + +
      4 ms
      +
      passedan_empty_collection
      +
    • +
    • + +
      3 ms
      +
      passedlist_content_can_be_asserted_with_nested_matcher
      +
    • +
    • + +
      2 ms
      +
      passedhas_path
      +
    • +
    • + +
      9 ms
      +
      passedmap_content_can_be_asserted_with_matcher
      +
    • +
    • + +
      2 ms
      +
      passedinvalid_path
      +
    • +
    • + +
      1 ms
      +
      passeda_path_can_be_asserted_with_matcher
      +
    • +
    • + +
      5 ms
      +
      passedtestAssertEqualsIntegerInvalidExpected
      +
    • +
    • + +
      1 ms
      +
      passedfailed_error_message
      +
    • +
    • + +
      3 ms
      +
      passeda_path_can_be_asserted_equal_to
      +
    • +
    +
  • +
  • + +
    1 ms
    +
    DemoTest
    +
      +
    • + +
      1 ms
      +
      ignoredshouldFailOnTypedJsonString
      +
    • +
    • + +
      0 ms
      +
      ignoredshouldFailOnJsonFile
      +
    • +
    • + +
      0 ms
      +
      ignoredshouldFailOnNonExistingJsonPath
      +
    • +
    • + +
      0 ms
      +
      ignoredshouldFailOnInvalidJsonString
      +
    • +
    • + +
      0 ms
      +
      ignoredshouldFailOnTypedJsonFile
      +
    • +
    • + +
      0 ms
      +
      ignoredshouldFailOnExistingJsonPathAlternative
      +
    • +
    • + +
      0 ms
      +
      ignoredshouldFailOnExistingJsonPath
      +
    • +
    • + +
      0 ms
      +
      ignoredshouldFailOnTypedInvalidJsonString
      +
    • +
    • + +
      0 ms
      +
      ignoredshouldFailOnInvalidJsonFile
      +
    • +
    • + +
      0 ms
      +
      ignoredshouldFailOnTypedInvalidJsonFile
      +
    • +
    • + +
      0 ms
      +
      ignoredshouldFailOnJsonString
      +
    • +
    +
  • +
  • + +
    19 ms
    +
    HasNoJsonPathTest
    +
      +
    • + +
      13 ms
      +
      passedshouldBeDescriptive
      +
    • +
    • + +
      3 ms
      +
      passedshouldNotMatchExplicitNull
      +
    • +
    • + +
      1 ms
      +
      passedshouldNotMatchExistingJsonPath
      +
    • +
    • + +
      2 ms
      +
      passedshouldMatchMissingJsonPath
      +
    • +
    +
  • +
  • + +
    30 ms
    +
    IsJsonFileTest
    +
      +
    • + +
      12 ms
      +
      passedshouldNotMatchJsonFileEvaluatedToFalse
      +
    • +
    • + +
      5 ms
      +
      passedshouldMatchJsonFileEvaluatedToTrue
      +
    • +
    • + +
      6 ms
      +
      passedshouldDescribeMismatchOfValidJson
      +
    • +
    • + +
      2 ms
      +
      passedshouldBeDescriptive
      +
    • +
    • + +
      2 ms
      +
      passedshouldDescribeMismatchOfInvalidJson
      +
    • +
    • + +
      3 ms
      +
      passedshouldNotMatchInvalidJsonFile
      +
    • +
    +
  • +
  • + +
    5 ms
    +
    IsJsonStringTest
    +
      +
    • + +
      1 ms
      +
      passedshouldMatchJsonStringEvaluatedToTrue
      +
    • +
    • + +
      1 ms
      +
      passedshouldNotMatchInvalidJsonString
      +
    • +
    • + +
      1 ms
      +
      passedshouldNotMatchJsonStringEvaluatedToFalse
      +
    • +
    • + +
      0 ms
      +
      passedshouldDescribeMismatchOfValidJson
      +
    • +
    • + +
      1 ms
      +
      passedshouldBeDescriptive
      +
    • +
    • + +
      1 ms
      +
      passedshouldDescribeMismatchOfInvalidJson
      +
    • +
    +
  • +
  • + +
    32 ms
    +
    IsJsonTest
    +
      +
    • + +
      10 ms
      +
      passedshouldMatchOnEmptyJsonObject
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchOnEmptyJsonArray
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchJsonStringEvaluatedToTrue
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchJsonObjectEvaluatedToTrue
      +
    • +
    • + +
      4 ms
      +
      passedshouldNotMatchJsonFileEvaluatedToFalse
      +
    • +
    • + +
      2 ms
      +
      passedshouldNotMatchNonExistingJsonFile
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchValidJson
      +
    • +
    • + +
      1 ms
      +
      passedshouldNotMatchJsonStringEvaluatedToFalse
      +
    • +
    • + +
      3 ms
      +
      passedshouldMatchJsonFileEvaluatedToTrue
      +
    • +
    • + +
      1 ms
      +
      passedshouldDescribeMismatchOfValidJson
      +
    • +
    • + +
      1 ms
      +
      passedshouldBeDescriptive
      +
    • +
    • + +
      0 ms
      +
      passedshouldNotMatchJsonObjectEvaluatedToFalse
      +
    • +
    • + +
      1 ms
      +
      passedshouldDescribeMismatchOfInvalidJson
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchOnJsonArray
      +
    • +
    • + +
      2 ms
      +
      passedshouldNotMatchInvalidJson
      +
    • +
    • + +
      2 ms
      +
      passedshouldMatchOnJsonObject
      +
    • +
    +
  • +
  • + +
    35 ms
    +
    JsonPathMatchersTest
    +
      +
    • + +
      6 ms
      +
      passedshouldMatchJsonPathToBooleanValue
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchJsonPathToIntegerValue
      +
    • +
    • + +
      2 ms
      +
      passedshouldNotMatchNonExistingJsonPath
      +
    • +
    • + +
      2 ms
      +
      passedwillMatchIndefiniteJsonPathsEvaluatedToEmptyLists
      +
    • +
    • + +
      1 ms
      +
      passedshouldNotMatchInvalidJsonWithPath
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchJsonPathOnReadContext
      +
    • +
    • + +
      3 ms
      +
      passedshouldMatchJsonPathToNullValue
      +
    • +
    • + +
      7 ms
      +
      passedshouldMatchJsonPathToEmptyJsonArray
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchJsonPathToEmptyJsonObject
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchJsonPathToDoubleValue
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchJsonPathToStringValue
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchJsonPathToJsonObject
      +
    • +
    • + +
      3 ms
      +
      passedshouldMatchJsonPathOnFile
      +
    • +
    • + +
      1 ms
      +
      passedshouldNotMatchInvalidJsonWithPathAndValue
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchJsonPathOnParsedJsonObject
      +
    • +
    • + +
      2 ms
      +
      passedshouldMatchJsonPathToJsonArray
      +
    • +
    • + +
      1 ms
      +
      passedshouldNotMatchJsonPathOnNonExistingFile
      +
    • +
    +
  • +
  • + +
    13 ms
    +
    WithJsonPathTest
    +
      +
    • + +
      3 ms
      +
      passedshouldNotMatchNonExistingStringJsonPath
      +
    • +
    • + +
      2 ms
      +
      passedshouldNotMatchNonExistingJsonPath
      +
    • +
    • + +
      3 ms
      +
      passedshouldDescribeMismatchOfEvaluation
      +
    • +
    • + +
      0 ms
      +
      passedshouldNotMatchOnInvalidJson
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchJsonPathEvaluatedToCollectionValue
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchExistingStringJsonPath
      +
    • +
    • + +
      0 ms
      +
      passedshouldBeDescriptive
      +
    • +
    • + +
      0 ms
      +
      passedshouldMatchJsonPathEvaluatedToIntegerValue
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchExistingCompiledJsonPath
      +
    • +
    • + +
      1 ms
      +
      passedshouldDescribeMismatchOfPathNotFound
      +
    • +
    • + +
      0 ms
      +
      passedshouldFailOnInvalidJsonPath
      +
    • +
    • + +
      0 ms
      +
      passedshouldMatchJsonPathEvaluatedToDoubleValue
      +
    • +
    • + +
      1 ms
      +
      passedshouldMatchJsonPathEvaluatedToStringValue
      +
    • +
    +
  • +
  • + +
    3 ms
    +
    WithoutJsonPathTest
    +
      +
    • + +
      1 ms
      +
      passedshouldMatchNonExistingJsonPath
      +
    • +
    • + +
      1 ms
      +
      passedshouldBeDescriptive
      +
    • +
    • + +
      1 ms
      +
      passedshouldNotMatchExistingJsonPath
      +
    • +
    +
  • +
+
+
+ + + diff --git a/json-path/src/test/java/com/jayway/jsonpath/internal/JettisonProviderTest.java b/json-path/src/test/java/com/jayway/jsonpath/internal/JettisonProviderTest.java new file mode 100644 index 00000000..266877cc --- /dev/null +++ b/json-path/src/test/java/com/jayway/jsonpath/internal/JettisonProviderTest.java @@ -0,0 +1,34 @@ +//package com.jayway.jsonpath.internal; +// +//import com.jayway.jsonpath.spi.json.JettisonProvider; +//import org.junit.Before; +//import org.junit.Test; +// +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +// +//public class JettisonProviderTest { +// +// private JettisonProvider jsonProvider; +// +// @Before +// public void setUp() { +// jsonProvider = new JettisonProvider(); +// } +// +// @Test +// public void parseValidJsonString() { +// //Input json +// String jsonString = "{\"name\":\"Vishesh\",\"age\":21}"; +// +// // When parsing a valid JSON string +// Object result = jsonProvider.parse(jsonString); +// +// assertTrue(jsonProvider.isMap(result)); +// +// // expected values +// assertEquals("Vishesh", jsonProvider.getMapValue(result, "name")); +// assertEquals(21, jsonProvider.getMapValue(result, "age")); +// } +// +//} diff --git a/json-path/src/test/java/com/jayway/jsonpath/internal/JsonOrgJsonProviderTest.java b/json-path/src/test/java/com/jayway/jsonpath/internal/JsonOrgJsonProviderTest.java new file mode 100644 index 00000000..d6558328 --- /dev/null +++ b/json-path/src/test/java/com/jayway/jsonpath/internal/JsonOrgJsonProviderTest.java @@ -0,0 +1,46 @@ +//package com.jayway.jsonpath.internal; +// +//import com.jayway.jsonpath.spi.json.JsonOrgJsonProvider; +//import org.junit.Before; +//import org.junit.Test; +// +//import java.io.ByteArrayInputStream; +//import java.io.InputStream; +//import java.nio.charset.StandardCharsets; +// +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +// +//public class JsonOrgJsonProviderTest { +// private JsonOrgJsonProvider jsonProvider; +// @Before +// public void setUp() { +// jsonProvider = new JsonOrgJsonProvider(); +// } +// @Test +// public void parseValidJsonString() { +// //input json +// String jsonString = "{\"name\":\"Raj\",\"age\":31}"; +// +// // When parsing a valid JSON string +// Object result = jsonProvider.parse(jsonString); +// +// assertTrue(jsonProvider.isMap(result)); +// assertEquals("Raj", jsonProvider.getMapValue(result, "name")); +// assertEquals(31, jsonProvider.getMapValue(result, "age")); +// } +// @Test +// public void parseValidJsonInputStream() { +// +// String jsonString = "{\"name\":\"Raj\",\"age\":31}"; +// InputStream jsonStream = new ByteArrayInputStream(jsonString.getBytes(StandardCharsets.UTF_8)); +// +// // When parsing valid JSON from an InputStream +// Object result = jsonProvider.parse(jsonStream, StandardCharsets.UTF_8.name()); +// +// assertTrue(jsonProvider.isMap(result)); +// // expected values +// assertEquals("Raj", jsonProvider.getMapValue(result, "name")); +// assertEquals(31, jsonProvider.getMapValue(result, "age")); +// } +//} diff --git a/json-path/src/test/java/com/jayway/jsonpath/internal/TapestryMappingProviderTest.java b/json-path/src/test/java/com/jayway/jsonpath/internal/TapestryMappingProviderTest.java new file mode 100644 index 00000000..725b5577 --- /dev/null +++ b/json-path/src/test/java/com/jayway/jsonpath/internal/TapestryMappingProviderTest.java @@ -0,0 +1,42 @@ +//package com.jayway.jsonpath.internal; +// +//import com.jayway.jsonpath.Configuration; +//import com.jayway.jsonpath.TypeRef; +//import com.jayway.jsonpath.spi.mapper.TapestryMappingProvider; +//import org.junit.Before; +//import org.junit.Test; +// +//import java.util.List; +// +//import static org.junit.Assert.assertNull; +//import static org.junit.Assert.fail; +// +//public class TapestryMappingProviderTest { +// private TapestryMappingProvider mappingProvider; +// private Configuration configuration; +// @Before +// public void setUp() { +// mappingProvider = new TapestryMappingProvider(); +// configuration = Configuration.defaultConfiguration(); +// } +// @Test +// public void mapNullSourceToNullTarget() { +// Object source = null; +// +// Object result = mappingProvider.map(source, List.class, configuration); +// +// //result should be null +// assertNull(result); +// } +// @Test +// public void mapArrayToJsonRef() { +// String[] source = new String[]{"Red", "Green", "Blue"}; +// +// try { +// Object result = mappingProvider.map(source, new TypeRef>() {}, configuration); +// fail("Expected UnsupportedOperationException"); +// } catch (UnsupportedOperationException e) { +// // UnsupportedOperationException should be thrown +// } +// } +//} From 39428515f5f1bb881aa0844634507fa8fafd56c0 Mon Sep 17 00:00:00 2001 From: AdultCensusSalaryPrediction Date: Sun, 26 Nov 2023 05:06:49 -0400 Subject: [PATCH 2/4] Set1 refactoring --- .../internal/filter/EvaluatorFactory.java | 35 ++++++++++--------- .../jsonpath/internal/filter/ValueNode.java | 34 +++++++++++++----- .../function/PassthruPathFunction.java | 2 +- .../internal/function/PathFunction.java | 2 +- .../internal/function/json/Append.java | 2 +- .../function/json/KeySetFunction.java | 2 +- .../function/numeric/AbstractAggregation.java | 30 +++++++++------- .../internal/function/numeric/Average.java | 4 +-- .../internal/function/numeric/Max.java | 4 +-- .../internal/function/numeric/Min.java | 4 +-- .../function/numeric/StandardDeviation.java | 4 +-- .../internal/function/numeric/Sum.java | 4 +-- .../sequence/AbstractSequenceAggregation.java | 2 +- .../internal/function/text/Concatenate.java | 2 +- .../internal/function/text/Length.java | 2 +- .../internal/path/FunctionPathToken.java | 2 +- .../jsonpath/internal/path/PathToken.java | 2 +- 17 files changed, 82 insertions(+), 55 deletions(-) diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/filter/EvaluatorFactory.java b/json-path/src/main/java/com/jayway/jsonpath/internal/filter/EvaluatorFactory.java index 322a1719..8afba610 100755 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/filter/EvaluatorFactory.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/filter/EvaluatorFactory.java @@ -375,27 +375,28 @@ public class EvaluatorFactory { private static class NoneOfEvaluator implements Evaluator { @Override public boolean evaluate(ValueNode left, ValueNode right, Predicate.PredicateContext ctx) { - ValueListNode rightValueListNode; - if (right.isJsonNode()) { - ValueNode vn = right.asJsonNode().asValueListNode(ctx); + ValueListNode rightValueListNode = extractValueListNode(right, ctx); + ValueListNode leftValueListNode = extractValueListNode(left, ctx); + + return areAllElementsDifferent(leftValueListNode, rightValueListNode); + } + + private ValueListNode extractValueListNode(ValueNode node, Predicate.PredicateContext ctx) { + if (node.isJsonNode()) { + ValueNode vn = node.asJsonNode().asValueListNode(ctx); if (vn.isUndefinedNode()) { - return false; + return null; // or handle undefined case accordingly } else { - rightValueListNode = vn.asValueListNode(); + return vn.asValueListNode(); } } else { - rightValueListNode = right.asValueListNode(); + return node.asValueListNode(); } - ValueListNode leftValueListNode; - if (left.isJsonNode()) { - ValueNode vn = left.asJsonNode().asValueListNode(ctx); - if (vn.isUndefinedNode()) { - return false; - } else { - leftValueListNode = vn.asValueListNode(); - } - } else { - leftValueListNode = left.asValueListNode(); + } + + private boolean areAllElementsDifferent(ValueListNode leftValueListNode, ValueListNode rightValueListNode) { + if (leftValueListNode == null || rightValueListNode == null) { + return false; // or handle the case where one of the lists is null } for (ValueNode leftValueNode : leftValueListNode) { @@ -405,7 +406,9 @@ public class EvaluatorFactory { } } } + return true; } + } } diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/filter/ValueNode.java b/json-path/src/main/java/com/jayway/jsonpath/internal/filter/ValueNode.java index cdf0dd97..b9b6529f 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/filter/ValueNode.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/filter/ValueNode.java @@ -135,26 +135,44 @@ public abstract class ValueNode { } private static boolean isJson(Object o) { - if(o == null || !(o instanceof String)){ + if (o == null || !(o instanceof String)) { return false; } + String str = o.toString().trim(); + if (str.length() <= 1) { return false; } + char c0 = str.charAt(0); char c1 = str.charAt(str.length() - 1); - if ((c0 == '[' && c1 == ']') || (c0 == '{' && c1 == '}')){ - try { - new JSONParser(JSONParser.MODE_PERMISSIVE).parse(str); - return true; - } catch(Exception e){ - return false; - } + + if (isJsonArray(c0, c1) || isJsonObject(c0, c1)) { + return isValidJson(str); } + return false; } + private static boolean isJsonArray(char c0, char c1) { + return c0 == '[' && c1 == ']'; + } + + private static boolean isJsonObject(char c0, char c1) { + return c0 == '{' && c1 == '}'; + } + + private static boolean isValidJson(String str) { + try { + new JSONParser(JSONParser.MODE_PERMISSIVE).parse(str); + return true; + } catch (Exception e) { + return false; + } + } + + //---------------------------------------------------- diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/function/PassthruPathFunction.java b/json-path/src/main/java/com/jayway/jsonpath/internal/function/PassthruPathFunction.java index 36d7da77..0be65205 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/function/PassthruPathFunction.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/function/PassthruPathFunction.java @@ -13,7 +13,7 @@ import java.util.List; public class PassthruPathFunction implements PathFunction { @Override - public Object invoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { + public Object aggregateAndInvoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { return model; } } diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/function/PathFunction.java b/json-path/src/main/java/com/jayway/jsonpath/internal/function/PathFunction.java index ac3a353b..6e0e98b4 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/function/PathFunction.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/function/PathFunction.java @@ -32,5 +32,5 @@ public interface PathFunction { * @param parameters * @return result */ - Object invoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters); + Object aggregateAndInvoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters); } diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/function/json/Append.java b/json-path/src/main/java/com/jayway/jsonpath/internal/function/json/Append.java index ed39d4a8..aa2bbbdc 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/function/json/Append.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/function/json/Append.java @@ -16,7 +16,7 @@ import java.util.List; */ public class Append implements PathFunction { @Override - public Object invoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { + public Object aggregateAndInvoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { JsonProvider jsonProvider = ctx.configuration().jsonProvider(); if (parameters != null && parameters.size() > 0) { for (Parameter param : parameters) { diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/function/json/KeySetFunction.java b/json-path/src/main/java/com/jayway/jsonpath/internal/function/json/KeySetFunction.java index 049d6de0..847e6a95 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/function/json/KeySetFunction.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/function/json/KeySetFunction.java @@ -14,7 +14,7 @@ import java.util.List; public class KeySetFunction implements PathFunction { @Override - public Object invoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { + public Object aggregateAndInvoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { if (ctx.configuration().jsonProvider().isMap(model)) { return ctx.configuration().jsonProvider().getPropertyKeys(model); } diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/AbstractAggregation.java b/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/AbstractAggregation.java index cbc9f7bc..3d74cd29 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/AbstractAggregation.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/AbstractAggregation.java @@ -23,7 +23,7 @@ public abstract class AbstractAggregation implements PathFunction { * @param value * The numerical value to process next */ - protected abstract void next(Number value); + protected abstract void processNumericValue(Number value); /** * Obtains the value generated via the series of next value calls @@ -31,31 +31,37 @@ public abstract class AbstractAggregation implements PathFunction { * @return * A numerical answer based on the input value provided */ - protected abstract Number getValue(); + protected abstract Number getAggregatedValue(); @Override - public Object invoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { + public Object aggregateAndInvoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { int count = 0; - if(ctx.configuration().jsonProvider().isArray(model)){ - Iterable objects = ctx.configuration().jsonProvider().toIterable(model); - for (Object obj : objects) { - if (obj instanceof Number) { - Number value = (Number) obj; + if (ctx.configuration().jsonProvider().isArray(model)) { + Iterable arrayElements = ctx.configuration().jsonProvider().toIterable(model); + + for (Object arrayElement : arrayElements) { + if (arrayElement instanceof Number) { + Number numericValue = (Number) arrayElement; count++; - next(value); + processNumericValue(numericValue); } } } + if (parameters != null) { - for (Number value : Parameter.toList(Number.class, ctx, parameters)) { + for (Number parameterValue : Parameter.toList(Number.class, ctx, parameters)) { count++; - next(value); + processNumericValue(parameterValue); } } + if (count != 0) { - return getValue(); + return getAggregatedValue(); } + throw new JsonPathException("Aggregation function attempted to calculate value using empty array"); } + + } diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Average.java b/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Average.java index f4c6788e..83959975 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Average.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Average.java @@ -11,13 +11,13 @@ public class Average extends AbstractAggregation { private Double count = 0d; @Override - protected void next(Number value) { + protected void processNumericValue(Number value) { count++; summation += value.doubleValue(); } @Override - protected Number getValue() { + protected Number getAggregatedValue() { if (count != 0d) { return summation / count; } diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Max.java b/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Max.java index 27570bf6..35298722 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Max.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Max.java @@ -9,14 +9,14 @@ public class Max extends AbstractAggregation { private Double max = Double.MIN_VALUE; @Override - protected void next(Number value) { + protected void processNumericValue(Number value) { if (max < value.doubleValue()) { max = value.doubleValue(); } } @Override - protected Number getValue() { + protected Number getAggregatedValue() { return max; } } diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Min.java b/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Min.java index 3c57e5f2..125f9849 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Min.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Min.java @@ -9,14 +9,14 @@ public class Min extends AbstractAggregation { private Double min = Double.MAX_VALUE; @Override - protected void next(Number value) { + protected void processNumericValue(Number value) { if (min > value.doubleValue()) { min = value.doubleValue(); } } @Override - protected Number getValue() { + protected Number getAggregatedValue() { return min; } } diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/StandardDeviation.java b/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/StandardDeviation.java index 0a83d8a8..799d4f7d 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/StandardDeviation.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/StandardDeviation.java @@ -11,14 +11,14 @@ public class StandardDeviation extends AbstractAggregation { private Double count = 0d; @Override - protected void next(Number value) { + protected void processNumericValue(Number value) { sum += value.doubleValue(); sumSq += value.doubleValue() * value.doubleValue(); count++; } @Override - protected Number getValue() { + protected Number getAggregatedValue() { return Math.sqrt(sumSq/count - sum*sum/count/count); } } diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Sum.java b/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Sum.java index 3996bb43..8a7002e6 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Sum.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/function/numeric/Sum.java @@ -9,12 +9,12 @@ public class Sum extends AbstractAggregation { private Double summation = 0d; @Override - protected void next(Number value) { + protected void processNumericValue(Number value) { summation += value.doubleValue(); } @Override - protected Number getValue() { + protected Number getAggregatedValue() { return summation; } } diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/function/sequence/AbstractSequenceAggregation.java b/json-path/src/main/java/com/jayway/jsonpath/internal/function/sequence/AbstractSequenceAggregation.java index 24c87e13..dd5b8153 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/function/sequence/AbstractSequenceAggregation.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/function/sequence/AbstractSequenceAggregation.java @@ -19,7 +19,7 @@ public abstract class AbstractSequenceAggregation implements PathFunction { protected abstract int targetIndex(EvaluationContext ctx, List parameters); @Override - public Object invoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { + public Object aggregateAndInvoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { if(ctx.configuration().jsonProvider().isArray(model)){ Iterable objects = ctx.configuration().jsonProvider().toIterable(model); diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/function/text/Concatenate.java b/json-path/src/main/java/com/jayway/jsonpath/internal/function/text/Concatenate.java index d499afef..725805cd 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/function/text/Concatenate.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/function/text/Concatenate.java @@ -14,7 +14,7 @@ import java.util.List; */ public class Concatenate implements PathFunction { @Override - public Object invoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { + public Object aggregateAndInvoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { StringBuilder result = new StringBuilder(); if(ctx.configuration().jsonProvider().isArray(model)){ Iterable objects = ctx.configuration().jsonProvider().toIterable(model); diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/function/text/Length.java b/json-path/src/main/java/com/jayway/jsonpath/internal/function/text/Length.java index ea8ab1ff..b0c8d2fc 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/function/text/Length.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/function/text/Length.java @@ -40,7 +40,7 @@ public class Length implements PathFunction { * @return */ @Override - public Object invoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { + public Object aggregateAndInvoke(String currentPath, PathRef parent, Object model, EvaluationContext ctx, List parameters) { if (null != parameters && parameters.size() > 0) { // Set the tail of the first parameter, when its not a function path parameter (which wouldn't make sense diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/path/FunctionPathToken.java b/json-path/src/main/java/com/jayway/jsonpath/internal/path/FunctionPathToken.java index 0f449895..85c95f57 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/path/FunctionPathToken.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/path/FunctionPathToken.java @@ -38,7 +38,7 @@ public class FunctionPathToken extends PathToken { public void evaluate(String currentPath, PathRef parent, Object model, EvaluationContextImpl ctx) { PathFunction pathFunction = PathFunctionFactory.newFunction(functionName); evaluateParameters(currentPath, parent, model, ctx); - Object result = pathFunction.invoke(currentPath, parent, model, ctx, functionParams); + Object result = pathFunction.aggregateAndInvoke(currentPath, parent, model, ctx, functionParams); ctx.addResult(currentPath + "." + functionName, parent, result); cleanWildcardPathToken(); if (!isLeaf()) { diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathToken.java b/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathToken.java index 34cf1402..b1eb7e66 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathToken.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/path/PathToken.java @@ -215,7 +215,7 @@ public abstract class PathToken { } public void invoke(PathFunction pathFunction, String currentPath, PathRef parent, Object model, EvaluationContextImpl ctx) { - ctx.addResult(currentPath, parent, pathFunction.invoke(currentPath, parent, model, ctx, null)); + ctx.addResult(currentPath, parent, pathFunction.aggregateAndInvoke(currentPath, parent, model, ctx, null)); } public abstract void evaluate(String currentPath, PathRef parent, Object model, EvaluationContextImpl ctx); From f3aad94dbbe3dbb7037b19eeefc261b191e90842 Mon Sep 17 00:00:00 2001 From: AdultCensusSalaryPrediction Date: Sun, 26 Nov 2023 14:52:11 -0400 Subject: [PATCH 3/4] Set2 refactoring --- .../java/com/jayway/jsonpath/JsonPath.java | 82 +++++++------------ .../com/jayway/jsonpath/PathEvaluator.java | 35 ++++++++ .../com/jayway/jsonpath/internal/Path.java | 4 +- .../spi/json/JacksonJsonNodeJsonProvider.java | 32 +++++++- .../spi/json/JsonLengthCalculator.java | 5 ++ 5 files changed, 101 insertions(+), 57 deletions(-) create mode 100644 json-path/src/main/java/com/jayway/jsonpath/PathEvaluator.java create mode 100644 json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonLengthCalculator.java diff --git a/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java b/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java index 01c7db03..6dca7db2 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java +++ b/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java @@ -16,6 +16,7 @@ package com.jayway.jsonpath; import com.jayway.jsonpath.internal.*; +import com.jayway.jsonpath.internal.PathEvaluator; import com.jayway.jsonpath.internal.path.PathCompiler; import com.jayway.jsonpath.spi.json.JsonProvider; @@ -139,6 +140,23 @@ public class JsonPath { return path.isDefinite(); } + +// public boolean isFunctionPath() { +// return path.isFunctionPath(); +// } +// +// public boolean isRootPath() { +// return path.isRootPath(); +// } + + public EvaluationContext evaluate(Object document, Object rootDocument, Configuration configuration) { + return evaluate(document, rootDocument, configuration, false); + } + + public EvaluationContext evaluate(Object document, Object rootDocument, Configuration configuration, boolean forUpdate) { + EvaluationContext evaluationContext = null; + return resultByConfiguration(document, configuration, evaluationContext); + } /** * Applies this JsonPath to the provided json document. * Note that the document must be identified as either a List or Map by @@ -165,46 +183,8 @@ public class JsonPath { */ @SuppressWarnings("unchecked") public T read(Object jsonObject, Configuration configuration) { - boolean optAsPathList = configuration.containsOption(AS_PATH_LIST); - boolean optAlwaysReturnList = configuration.containsOption(Option.ALWAYS_RETURN_LIST); - boolean optSuppressExceptions = configuration.containsOption(Option.SUPPRESS_EXCEPTIONS); - - if (path.isFunctionPath()) { - if (optAsPathList || optAlwaysReturnList) { - if (optSuppressExceptions) { - return (T) (path.isDefinite() ? null : configuration.jsonProvider().createArray()); - } - throw new JsonPathException("Options " + AS_PATH_LIST + " and " + ALWAYS_RETURN_LIST + " are not allowed when using path functions!"); - } - EvaluationContext evaluationContext = path.evaluate(jsonObject, jsonObject, configuration); - if (optSuppressExceptions && evaluationContext.getPathList().isEmpty()) { - return (T) (path.isDefinite() ? null : configuration.jsonProvider().createArray()); - } - return evaluationContext.getValue(true); - } else if (optAsPathList) { - EvaluationContext evaluationContext = path.evaluate(jsonObject, jsonObject, configuration); - if (optSuppressExceptions && evaluationContext.getPathList().isEmpty()) { - return (T) configuration.jsonProvider().createArray(); - } - return (T) evaluationContext.getPath(); - } else { - EvaluationContext evaluationContext = path.evaluate(jsonObject, jsonObject, configuration); - if (optSuppressExceptions && evaluationContext.getPathList().isEmpty()) { - if (optAlwaysReturnList) { - return (T) configuration.jsonProvider().createArray(); - } else { - return (T) (path.isDefinite() ? null : configuration.jsonProvider().createArray()); - } - } - Object res = evaluationContext.getValue(false); - if (optAlwaysReturnList && path.isDefinite()) { - Object array = configuration.jsonProvider().createArray(); - configuration.jsonProvider().setArrayIndex(array, 0, res); - return (T) array; - } else { - return (T) res; - } - } + PathEvaluator evaluator = new PathEvaluator(path, configuration); + return evaluator.evaluate(jsonObject); } /** @@ -218,7 +198,7 @@ public class JsonPath { public T set(Object jsonObject, Object newVal, Configuration configuration) { notNull(jsonObject, "json can not be null"); notNull(configuration, "configuration can not be null"); - EvaluationContext evaluationContext = path.evaluate(jsonObject, jsonObject, configuration, true); + EvaluationContext evaluationContext = evaluate(jsonObject, jsonObject, configuration, true); if (evaluationContext.getPathList().isEmpty()) { boolean optSuppressExceptions = configuration.containsOption(Option.SUPPRESS_EXCEPTIONS); if (optSuppressExceptions) { @@ -246,7 +226,7 @@ public class JsonPath { notNull(jsonObject, "json can not be null"); notNull(configuration, "configuration can not be null"); notNull(mapFunction, "mapFunction can not be null"); - EvaluationContext evaluationContext = path.evaluate(jsonObject, jsonObject, configuration, true); + EvaluationContext evaluationContext = evaluate(jsonObject, jsonObject, configuration, true); if (evaluationContext.getPathList().isEmpty()) { boolean optSuppressExceptions = configuration.containsOption(Option.SUPPRESS_EXCEPTIONS); if (optSuppressExceptions) { @@ -273,7 +253,7 @@ public class JsonPath { public T delete(Object jsonObject, Configuration configuration) { notNull(jsonObject, "json can not be null"); notNull(configuration, "configuration can not be null"); - EvaluationContext evaluationContext = path.evaluate(jsonObject, jsonObject, configuration, true); + EvaluationContext evaluationContext = evaluate(jsonObject, jsonObject, configuration, true); if (evaluationContext.getPathList().isEmpty()) { boolean optSuppressExceptions = configuration.containsOption(Option.SUPPRESS_EXCEPTIONS); if (optSuppressExceptions) { @@ -300,7 +280,7 @@ public class JsonPath { public T add(Object jsonObject, Object value, Configuration configuration) { notNull(jsonObject, "json can not be null"); notNull(configuration, "configuration can not be null"); - EvaluationContext evaluationContext = path.evaluate(jsonObject, jsonObject, configuration, true); + EvaluationContext evaluationContext = evaluate(jsonObject, jsonObject, configuration, true); if (evaluationContext.getPathList().isEmpty()) { boolean optSuppressExceptions = configuration.containsOption(Option.SUPPRESS_EXCEPTIONS); if (optSuppressExceptions) { @@ -329,7 +309,7 @@ public class JsonPath { notNull(jsonObject, "json can not be null"); notEmpty(key, "key can not be null or empty"); notNull(configuration, "configuration can not be null"); - EvaluationContext evaluationContext = path.evaluate(jsonObject, jsonObject, configuration, true); + EvaluationContext evaluationContext = evaluate(jsonObject, jsonObject, configuration, true); if (evaluationContext.getPathList().isEmpty()) { boolean optSuppressExceptions = configuration.containsOption(Option.SUPPRESS_EXCEPTIONS); if (optSuppressExceptions) { @@ -348,7 +328,7 @@ public class JsonPath { notNull(jsonObject, "json can not be null"); notEmpty(newKeyName, "newKeyName can not be null or empty"); notNull(configuration, "configuration can not be null"); - EvaluationContext evaluationContext = path.evaluate(jsonObject, jsonObject, configuration, true); + EvaluationContext evaluationContext = evaluate(jsonObject, jsonObject, configuration, true); for (PathRef updateOperation : evaluationContext.updateOperations()) { boolean optSuppressExceptions = configuration.containsOption(Option.SUPPRESS_EXCEPTIONS); try { @@ -554,17 +534,17 @@ public class JsonPath { /** * Creates a new JsonPath and applies it to the provided Json object * - * @param jsonURL url pointing to json doc + // * @param jsonURL url pointing to json doc * @param jsonPath the json path * @param filters filters to be applied to the filter place holders [?] in the path * @param expected return type * @return list of objects matched by the given path */ - @SuppressWarnings({"unchecked"}) +// @SuppressWarnings({"unchecked"}) @Deprecated - public static T read(URL jsonURL, String jsonPath, Predicate... filters) throws IOException { - return new ParseContextImpl().parse(jsonURL).read(jsonPath, filters); - } +// public static T read(URL jsonURL, String jsonPath, Predicate... filters) throws IOException { +// return new ParseContextImpl().parse(jsonURL).read(jsonPath, filters); +// } /** * Creates a new JsonPath and applies it to the provided Json object diff --git a/json-path/src/main/java/com/jayway/jsonpath/PathEvaluator.java b/json-path/src/main/java/com/jayway/jsonpath/PathEvaluator.java new file mode 100644 index 00000000..33fa3366 --- /dev/null +++ b/json-path/src/main/java/com/jayway/jsonpath/PathEvaluator.java @@ -0,0 +1,35 @@ +package com.jayway.jsonpath.internal; + +import com.jayway.jsonpath.Configuration; +import static com.jayway.jsonpath.internal.Utils.*; +import static com.jayway.jsonpath.Option.AS_PATH_LIST; + +public class PathEvaluator { + + private final Path path; + private final Configuration configuration; + + public PathEvaluator(Path path, Configuration configuration) { + notNull(path, "path can not be null"); + notNull(configuration, "configuration can not be null"); + this.path = path; + this.configuration = configuration; + } + + public T evaluate(Object jsonObject) { + boolean optAsPathList = configuration.containsOption(AS_PATH_LIST); + EvaluationContext evaluationContext = path.evaluate(jsonObject, jsonObject, configuration); + + + return resultByConfiguration(jsonObject, evaluationContext); + } + + private T resultByConfiguration(Object jsonObject, EvaluationContext evaluationContext) { + if(configuration.containsOption(AS_PATH_LIST)){ + return (T)evaluationContext.getPathList(); + } else { + return (T) jsonObject; + } + } + +} \ No newline at end of file diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/Path.java b/json-path/src/main/java/com/jayway/jsonpath/internal/Path.java index 7decbd64..e66943da 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/Path.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/Path.java @@ -30,7 +30,7 @@ public interface Path { * @param configuration configuration to use * @return EvaluationContext containing results of evaluation */ - EvaluationContext evaluate(Object document, Object rootDocument, Configuration configuration); +// EvaluationContext evaluate(Object document, Object rootDocument, Configuration configuration); /** * Evaluates this path @@ -41,7 +41,7 @@ public interface Path { * @param forUpdate is this a read or a write operation * @return EvaluationContext containing results of evaluation */ - EvaluationContext evaluate(Object document, Object rootDocument, Configuration configuration, boolean forUpdate); +// EvaluationContext evaluate(Object document, Object rootDocument, Configuration configuration, boolean forUpdate); /** * diff --git a/json-path/src/main/java/com/jayway/jsonpath/spi/json/JacksonJsonNodeJsonProvider.java b/json-path/src/main/java/com/jayway/jsonpath/spi/json/JacksonJsonNodeJsonProvider.java index ae165927..9a54dcbb 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/spi/json/JacksonJsonNodeJsonProvider.java +++ b/json-path/src/main/java/com/jayway/jsonpath/spi/json/JacksonJsonNodeJsonProvider.java @@ -212,18 +212,42 @@ public class JacksonJsonNodeJsonProvider extends AbstractJsonProvider { @Override public int length(Object obj) { + JsonLengthCalculator lengthCalculator = getLengthCalculator(obj); + return lengthCalculator.calculateLength(obj); + } + + private JsonLengthCalculator getLengthCalculator(Object obj) { if (isArray(obj)) { - return toJsonArray(obj).size(); + return new JsonArrayLengthCalculator(); } else if (isMap(obj)) { - return toJsonObject(obj).size(); + return new JsonObjectLengthCalculator(); } else { + return new TextNodeLengthCalculator(); + } + } + + public class JsonArrayLengthCalculator implements JsonLengthCalculator { + @Override + public int calculateLength(Object obj) { + return toJsonArray(obj).size(); + } + } + public class JsonObjectLengthCalculator implements JsonLengthCalculator { + @Override + public int calculateLength(Object obj) { + return toJsonObject(obj).size(); + } + } + + public class TextNodeLengthCalculator implements JsonLengthCalculator { + @Override + public int calculateLength(Object obj) { if (obj instanceof TextNode) { TextNode element = (TextNode) obj; return element.size(); } + throw new JsonPathException("length operation cannot be applied to " + (obj != null ? obj.getClass().getName() : "null")); } - throw new JsonPathException("length operation can not applied to " + (obj != null ? obj.getClass().getName() - : "null")); } @Override diff --git a/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonLengthCalculator.java b/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonLengthCalculator.java new file mode 100644 index 00000000..1056cdb0 --- /dev/null +++ b/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonLengthCalculator.java @@ -0,0 +1,5 @@ +package com.jayway.jsonpath.spi.json; + +public interface JsonLengthCalculator { + int calculateLength(Object obj); +} From b009482f7691d01899b2d2a7d242efe0e9e72847 Mon Sep 17 00:00:00 2001 From: AdultCensusSalaryPrediction Date: Sun, 26 Nov 2023 15:01:33 -0400 Subject: [PATCH 4/4] Corrected Path.java --- .../src/main/java/com/jayway/jsonpath/internal/Path.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/Path.java b/json-path/src/main/java/com/jayway/jsonpath/internal/Path.java index e66943da..7decbd64 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/Path.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/Path.java @@ -30,7 +30,7 @@ public interface Path { * @param configuration configuration to use * @return EvaluationContext containing results of evaluation */ -// EvaluationContext evaluate(Object document, Object rootDocument, Configuration configuration); + EvaluationContext evaluate(Object document, Object rootDocument, Configuration configuration); /** * Evaluates this path @@ -41,7 +41,7 @@ public interface Path { * @param forUpdate is this a read or a write operation * @return EvaluationContext containing results of evaluation */ -// EvaluationContext evaluate(Object document, Object rootDocument, Configuration configuration, boolean forUpdate); + EvaluationContext evaluate(Object document, Object rootDocument, Configuration configuration, boolean forUpdate); /** *