• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

fslev / json-compare / #685

30 Apr 2026 01:48PM UTC coverage: 91.146% (-6.5%) from 97.612%
#685

push

web-flow
Merge 603d72189 into 4691206c7

257 of 280 new or added lines in 13 files covered. (91.79%)

11 existing lines in 1 file now uncovered.

350 of 384 relevant lines covered (91.15%)

0.91 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

6.25
/src/main/java/io/json/compare/JSONCompare.java
1
package io.json.compare;
2

3
import com.fasterxml.jackson.databind.JsonNode;
4
import io.json.compare.util.JsonUtils;
5

6
import java.io.IOException;
7
import java.util.List;
8
import java.util.Set;
9

10
/**
11
 * Entry point for the json-compare library.
12
 *
13
 * <p>Modern usage is via the fluent builder returned by
14
 * {@link #compare(Object, Object)}:
15
 * <pre>{@code
16
 *   JSONCompare.compare(expected, actual)
17
 *       .modes(CompareMode.JSON_OBJECT_NON_EXTENSIBLE)
18
 *       .assertMatches();
19
 *
20
 *   List<String> diffs = JSONCompare.compare(expected, actual).diffs();
21
 * }</pre>
22
 *
23
 * <p>The previous telescoping static methods are preserved for backward
24
 * compatibility but are now deprecated in favor of the builder.
25
 *
26
 * @author fslev
27
 */
28
public final class JSONCompare {
29

30
    private JSONCompare() {
31
    }
32

33
    /**
34
     * Starts a fluent comparison of {@code expected} against {@code actual}.
35
     * Both arguments may be any JSON-convertible object: {@link JsonNode}, JSON
36
     * {@link String}, {@link java.util.Map Map}, {@link java.util.List List},
37
     * or any POJO.
38
     */
39
    public static ComparisonBuilder compare(Object expected, Object actual) {
40
        return new ComparisonBuilder(expected, actual);
1✔
41
    }
42

43
    /** Pretty-prints a Jackson node with the library's standard formatting. */
44
    public static String prettyPrint(JsonNode jsonNode) {
45
        try {
46
            return JsonUtils.prettyPrint(jsonNode);
1✔
NEW
47
        } catch (IOException e) {
×
NEW
48
            throw new RuntimeException(e);
×
49
        }
50
    }
51

52
    // --------------------------------------------------------------------
53
    // Deprecated static overloads — kept for API compatibility.
54
    // Prefer JSONCompare.compare(expected, actual).<builder methods>.
55
    // --------------------------------------------------------------------
56

57
    /** @deprecated Use {@code JSONCompare.compare(expected, actual).assertMatches()}. */
58
    @Deprecated(since = "8.0")
59
    public static void assertMatches(Object expected, Object actual) {
NEW
60
        compare(expected, actual).assertMatches();
×
UNCOV
61
    }
×
62

63
    /** @deprecated Use {@code JSONCompare.compare(expected, actual).modes(...).assertMatches()}. */
64
    @Deprecated(since = "8.0")
65
    public static void assertMatches(Object expected, Object actual, Set<CompareMode> compareModes) {
NEW
66
        compare(expected, actual).modes(compareModes).assertMatches();
×
UNCOV
67
    }
×
68

69
    /** @deprecated Use {@code JSONCompare.compare(expected, actual).comparator(...).assertMatches()}. */
70
    @Deprecated(since = "8.0")
71
    public static void assertMatches(Object expected, Object actual, JsonComparator comparator) {
NEW
72
        compare(expected, actual).comparator(comparator).assertMatches();
×
UNCOV
73
    }
×
74

75
    /** @deprecated Use the {@link #compare(Object, Object)} builder. */
76
    @Deprecated(since = "8.0")
77
    public static void assertMatches(Object expected, Object actual, JsonComparator comparator, Set<CompareMode> compareModes) {
NEW
78
        compare(expected, actual).comparator(comparator).modes(compareModes).assertMatches();
×
UNCOV
79
    }
×
80

81
    /** @deprecated Use the {@link #compare(Object, Object)} builder. */
82
    @Deprecated(since = "8.0")
83
    public static void assertMatches(Object expected, Object actual, Set<CompareMode> compareModes, String message) {
NEW
84
        compare(expected, actual).modes(compareModes).message(message).assertMatches();
×
UNCOV
85
    }
×
86

87
    /** @deprecated Use the {@link #compare(Object, Object)} builder. */
88
    @Deprecated(since = "8.0")
89
    public static void assertMatches(Object expected, Object actual, JsonComparator comparator, Set<CompareMode> compareModes, String message) {
NEW
90
        compare(expected, actual).comparator(comparator).modes(compareModes).message(message).assertMatches();
×
UNCOV
91
    }
×
92

93
    /** @deprecated Use {@code JSONCompare.compare(expected, actual).assertNotMatches()}. */
94
    @Deprecated(since = "8.0")
95
    public static void assertNotMatches(Object expected, Object actual) {
NEW
96
        compare(expected, actual).assertNotMatches();
×
UNCOV
97
    }
×
98

99
    /** @deprecated Use the {@link #compare(Object, Object)} builder. */
100
    @Deprecated(since = "8.0")
101
    public static void assertNotMatches(Object expected, Object actual, Set<CompareMode> compareModes) {
NEW
102
        compare(expected, actual).modes(compareModes).assertNotMatches();
×
UNCOV
103
    }
×
104

105
    /** @deprecated Use the {@link #compare(Object, Object)} builder. */
106
    @Deprecated(since = "8.0")
107
    public static void assertNotMatches(Object expected, Object actual, JsonComparator comparator) {
NEW
108
        compare(expected, actual).comparator(comparator).assertNotMatches();
×
UNCOV
109
    }
×
110

111
    /** @deprecated Use the {@link #compare(Object, Object)} builder. */
112
    @Deprecated(since = "8.0")
113
    public static void assertNotMatches(Object expected, Object actual, JsonComparator comparator, Set<CompareMode> compareModes) {
NEW
114
        compare(expected, actual).comparator(comparator).modes(compareModes).assertNotMatches();
×
UNCOV
115
    }
×
116

117
    /** @deprecated Use the {@link #compare(Object, Object)} builder. */
118
    @Deprecated(since = "8.0")
119
    public static void assertNotMatches(Object expected, Object actual, Set<CompareMode> compareModes, String message) {
NEW
120
        compare(expected, actual).modes(compareModes).message(message).assertNotMatches();
×
NEW
121
    }
×
122

123
    /** @deprecated Use the {@link #compare(Object, Object)} builder. */
124
    @Deprecated(since = "8.0")
125
    public static void assertNotMatches(Object expected, Object actual, JsonComparator comparator, Set<CompareMode> compareModes, String message) {
NEW
126
        compare(expected, actual).comparator(comparator).modes(compareModes).message(message).assertNotMatches();
×
UNCOV
127
    }
×
128

129
    /** @deprecated Use {@code JSONCompare.compare(expected, actual).diffs()}. */
130
    @Deprecated(since = "8.0")
131
    public static List<String> diffs(Object expected, Object actual) {
NEW
132
        return compare(expected, actual).diffs();
×
133
    }
134

135
    /** @deprecated Use the {@link #compare(Object, Object)} builder. */
136
    @Deprecated(since = "8.0")
137
    public static List<String> diffs(Object expected, Object actual, Set<CompareMode> compareModes) {
NEW
138
        return compare(expected, actual).modes(compareModes).diffs();
×
139
    }
140

141
    /** @deprecated Use the {@link #compare(Object, Object)} builder. */
142
    @Deprecated(since = "8.0")
143
    public static List<String> diffs(Object expected, Object actual, JsonComparator comparator) {
NEW
144
        return compare(expected, actual).comparator(comparator).diffs();
×
145
    }
146

147
    /** @deprecated Use the {@link #compare(Object, Object)} builder. */
148
    @Deprecated(since = "8.0")
149
    public static List<String> diffs(Object expected, Object actual, JsonComparator comparator, Set<CompareMode> compareModes) {
NEW
150
        return compare(expected, actual).comparator(comparator).modes(compareModes).diffs();
×
151
    }
152
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc