|
7 | 7 | import hudson.plugins.git.extensions.impl.UserIdentity;
|
8 | 8 | import io.jenkins.plugins.casc.misc.RoundTripAbstractTest;
|
9 | 9 | import jenkins.plugins.git.traits.AuthorInChangelogTrait;
|
10 |
| -import jenkins.plugins.git.traits.BranchDiscoveryTrait; |
11 | 10 | import jenkins.plugins.git.traits.CheckoutOptionTrait;
|
12 | 11 | import jenkins.plugins.git.traits.CleanAfterCheckoutTrait;
|
13 | 12 | import jenkins.plugins.git.traits.CleanBeforeCheckoutTrait;
|
|
21 | 20 | import jenkins.plugins.git.traits.RefSpecsSCMSourceTrait;
|
22 | 21 | import jenkins.plugins.git.traits.RemoteNameSCMSourceTrait;
|
23 | 22 | import jenkins.plugins.git.traits.SubmoduleOptionTrait;
|
24 |
| -import jenkins.plugins.git.traits.TagDiscoveryTrait; |
25 | 23 | import jenkins.plugins.git.traits.UserIdentityTrait;
|
26 | 24 | import jenkins.plugins.git.traits.WipeWorkspaceTrait;
|
27 | 25 | import jenkins.scm.api.SCMSource;
|
28 | 26 | import jenkins.scm.impl.trait.RegexSCMHeadFilterTrait;
|
29 | 27 | import jenkins.scm.impl.trait.WildcardSCMHeadFilterTrait;
|
| 28 | +import org.hamcrest.Description; |
| 29 | +import org.hamcrest.DiagnosingMatcher; |
30 | 30 | import org.jenkinsci.plugins.workflow.libs.GlobalLibraries;
|
31 | 31 | import org.jenkinsci.plugins.workflow.libs.LibraryConfiguration;
|
32 | 32 | import org.jenkinsci.plugins.workflow.libs.LibraryRetriever;
|
@@ -64,11 +64,13 @@ protected void assertConfiguredAsExpected(RestartableJenkinsRule restartableJenk
|
64 | 64 | assertThat(gitSCMSource.getTraits(), containsInAnyOrder(
|
65 | 65 | //Discover branches
|
66 | 66 | allOf(
|
67 |
| - instanceOf(BranchDiscoveryTrait.class) |
| 67 | + new SimpleNameMatcher("BranchDiscoveryTrait") |
| 68 | + // TODO after JENKINS-67309 instanceOf(BranchDiscoveryTrait.class) |
68 | 69 | ),
|
69 | 70 | // Discover tags
|
70 | 71 | allOf(
|
71 |
| - instanceOf(TagDiscoveryTrait.class) |
| 72 | + new SimpleNameMatcher("TagDiscoveryTrait") |
| 73 | + // TODO after JENKINS-67309 instanceOf(TagDiscoveryTrait.class) |
72 | 74 | ),
|
73 | 75 | // Check out to matching local branch
|
74 | 76 | allOf(
|
@@ -188,4 +190,32 @@ protected String stringInLogExpected() {
|
188 | 190 | protected String configResource() {
|
189 | 191 | return "global-with-modern-casc.yaml";
|
190 | 192 | }
|
| 193 | + |
| 194 | + private static final class SimpleNameMatcher extends DiagnosingMatcher<Object> { |
| 195 | + private final String expectedSimpleName; |
| 196 | + |
| 197 | + public SimpleNameMatcher(String expectedSimpleName) { |
| 198 | + this.expectedSimpleName = expectedSimpleName; |
| 199 | + } |
| 200 | + |
| 201 | + @Override |
| 202 | + protected boolean matches(Object item, Description mismatch) { |
| 203 | + if (item == null) { |
| 204 | + mismatch.appendText("null"); |
| 205 | + return false; |
| 206 | + } |
| 207 | + |
| 208 | + if (!item.getClass().getSimpleName().equals(expectedSimpleName)) { |
| 209 | + mismatch.appendValue(item).appendText(" is a " + item.getClass().getName()); |
| 210 | + return false; |
| 211 | + } |
| 212 | + |
| 213 | + return true; |
| 214 | + } |
| 215 | + |
| 216 | + @Override |
| 217 | + public void describeTo(Description description) { |
| 218 | + description.appendText("an instance of ").appendText(expectedSimpleName); |
| 219 | + } |
| 220 | + } |
191 | 221 | }
|
0 commit comments