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

hazendaz / jmockit1 / 496

15 Nov 2025 05:33PM UTC coverage: 72.192% (-0.008%) from 72.2%
496

push

github

web-flow
Merge pull request #412 from hazendaz/renovate/major-spring-core

Update spring core to v7 (major)

5677 of 8360 branches covered (67.91%)

Branch coverage included in aggregate %.

11922 of 16018 relevant lines covered (74.43%)

0.74 hits per line

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

68.57
/main/src/main/java/mockit/internal/expectations/argumentMatching/HamcrestAdapter.java
1
/*
2
 * MIT License
3
 * Copyright (c) 2006-2025 JMockit developers
4
 * See LICENSE file for full license text.
5
 */
6
package mockit.internal.expectations.argumentMatching;
7

8
import edu.umd.cs.findbugs.annotations.NonNull;
9
import edu.umd.cs.findbugs.annotations.Nullable;
10

11
import mockit.internal.reflection.FieldReflection;
12

13
import org.hamcrest.Description;
14
import org.hamcrest.Matcher;
15
import org.hamcrest.StringDescription;
16
import org.hamcrest.core.Is;
17
import org.hamcrest.core.IsEqual;
18
import org.hamcrest.core.IsNot;
19
import org.hamcrest.core.IsSame;
20

21
/**
22
 * Adapts the <code>org.hamcrest.Matcher</code> interface to {@link ArgumentMatcher}.
23
 */
24
public final class HamcrestAdapter implements ArgumentMatcher<HamcrestAdapter> {
1✔
25
    @NonNull
26
    private final Matcher<?> hamcrestMatcher;
27

28
    public HamcrestAdapter(@NonNull Matcher<?> matcher) {
1✔
29
        hamcrestMatcher = matcher;
1✔
30
    }
1✔
31

32
    @Override
33
    public boolean same(@NonNull HamcrestAdapter other) {
34
        return hamcrestMatcher == other.hamcrestMatcher;
×
35
    }
36

37
    @Override
38
    public boolean matches(@Nullable Object argValue) {
39
        return hamcrestMatcher.matches(argValue);
1✔
40
    }
41

42
    @Override
43
    public void writeMismatchPhrase(@NonNull ArgumentMismatch argumentMismatch) {
44
        Description strDescription = new StringDescription();
×
45
        hamcrestMatcher.describeTo(strDescription);
×
46
        argumentMismatch.append(strDescription.toString());
×
47
    }
×
48

49
    @Nullable
50
    public Object getInnerValue() {
51
        Object innermostMatcher = getInnermostMatcher();
1✔
52
        return getArgumentValueFromMatcherIfAvailable(innermostMatcher);
1✔
53
    }
54

55
    @NonNull
56
    private Object getInnermostMatcher() {
57
        Matcher<?> innerMatcher = hamcrestMatcher;
1✔
58

59
        while (innerMatcher instanceof Is || innerMatcher instanceof IsNot) {
1!
60
            innerMatcher = FieldReflection.getField(innerMatcher.getClass(), Matcher.class, innerMatcher);
1✔
61
        }
62

63
        assert innerMatcher != null;
1!
64
        return innerMatcher;
1✔
65
    }
66

67
    @Nullable
68
    private static Object getArgumentValueFromMatcherIfAvailable(@NonNull Object argMatcher) {
69
        if (argMatcher instanceof IsEqual || argMatcher instanceof IsSame
1!
70
                || "org.hamcrest.number.OrderingComparison".equals(argMatcher.getClass().getName())) {
1!
71
            return FieldReflection.getField(argMatcher.getClass(), Object.class, argMatcher);
1✔
72
        }
73

74
        return null;
1✔
75
    }
76
}
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