package org.jenkinsci.plugins.github_branch_source; import java.util.Arrays; import java.util.Collections; import java.util.EnumSet; import java.util.Map; import jenkins.model.Jenkins; import jenkins.scm.api.mixin.ChangeRequestCheckoutStrategy; import jenkins.scm.api.trait.SCMSourceTrait; import jenkins.scm.impl.trait.WildcardSCMHeadFilterTrait; import org.hamcrest.Matchers; import org.jenkinsci.plugins.structs.describable.DescribableModel; import org.jenkinsci.plugins.structs.describable.UninstantiatedDescribable; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TestName; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.hasProperty; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.assertThat; public class GitHubSCMSourceTraitsTest { /** * All tests in this class only use Jenkins for the extensions */ @ClassRule public static JenkinsRule r = new JenkinsRule(); @Rule public TestName currentTestName = new TestName(); private GitHubSCMSource load() { return load(currentTestName.getMethodName()); } private GitHubSCMSource load(String dataSet) { return (GitHubSCMSource) Jenkins.XSTREAM2.fromXML( getClass().getResource(getClass().getSimpleName() + "/" + dataSet + ".xml")); } @Test public void given__configuredInstance__when__uninstantiating__then__deprecatedFieldsIgnored() throws Exception { GitHubSCMSource instance = new GitHubSCMSource("repo-owner", "repo", null, false); instance.setId("test"); DescribableModel model = DescribableModel.of(GitHubSCMSource.class); UninstantiatedDescribable ud = model.uninstantiate2(instance); Map<String, Object> udMap = ud.toMap(); GitHubSCMSource recreated = (GitHubSCMSource) model.instantiate(udMap); assertThat(DescribableModel.uninstantiate2_(recreated).toString(), is("@github(id=test,repoOwner=repo-owner,repository=repo)") ); recreated.setBuildOriginBranch(true); recreated.setBuildOriginBranchWithPR(false); recreated.setBuildOriginPRHead(false); recreated.setBuildOriginPRMerge(true); recreated.setBuildForkPRHead(true); recreated.setBuildForkPRMerge(false); recreated.setIncludes("i*"); recreated.setExcludes("production"); recreated.setScanCredentialsId("foo"); assertThat(DescribableModel.uninstantiate2_(recreated).toString(), is("@github(" + "credentialsId=foo," + "id=test," + "repoOwner=repo-owner," + "repository=repo," + "traits=[" + "@gitHubBranchDiscovery$org.jenkinsci.plugins.github_branch_source.BranchDiscoveryTrait(strategyId=1), " + "@gitHubPullRequestDiscovery$OriginPullRequestDiscoveryTrait(strategyId=1), " + "@gitHubForkDiscovery$ForkPullRequestDiscoveryTrait(" + "strategyId=2," + "trust=@gitHubTrustPermissions$TrustPermission()), " + "@headWildcardFilter$WildcardSCMHeadFilterTrait(excludes=production,includes=i*)])") ); } @Test public void repositoryUrl() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getId(), is("e4d8c11a-0d24-472f-b86b-4b017c160e9a")); assertThat(instance.getApiUri(), is(GitHubSCMSource.GITHUB_URL)); assertThat(instance.getRepoOwner(), is("joseblas")); assertThat(instance.getRepository(), is("jx")); assertThat(instance.getCredentialsId(), is("abcd")); assertThat(instance.getRepositoryUrl(), is("https://github.com/joseblas/jx")); assertThat(instance.getTraits(), is(Collections.<SCMSourceTrait>emptyList())); // Legacy API assertThat(instance.getCheckoutCredentialsId(), is(GitHubSCMSource.DescriptorImpl.SAME)); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getBuildOriginBranch(), is(false)); assertThat(instance.getBuildOriginBranchWithPR(), is(false)); assertThat(instance.getBuildOriginPRHead(), is(false)); assertThat(instance.getBuildOriginPRMerge(), is(false)); assertThat(instance.getBuildForkPRHead(), is(false)); assertThat(instance.getBuildForkPRMerge(), is(false)); } @Test public void modern() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getId(), is("e4d8c11a-0d24-472f-b86b-4b017c160e9a")); assertThat(instance.getApiUri(), is(GitHubSCMSource.GITHUB_URL)); assertThat(instance.getRepoOwner(), is("cloudbeers")); assertThat(instance.getRepository(), is("stunning-adventure")); assertThat(instance.getCredentialsId(), is(nullValue())); assertThat(instance.getRepositoryUrl(), is("https://github.com/cloudbeers/stunning-adventure")); assertThat(instance.getTraits(), is(Collections.<SCMSourceTrait>emptyList())); // Legacy API assertThat(instance.getCheckoutCredentialsId(), is(GitHubSCMSource.DescriptorImpl.SAME)); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getBuildOriginBranch(), is(false)); assertThat(instance.getBuildOriginBranchWithPR(), is(false)); assertThat(instance.getBuildOriginPRHead(), is(false)); assertThat(instance.getBuildOriginPRMerge(), is(false)); assertThat(instance.getBuildForkPRHead(), is(false)); assertThat(instance.getBuildForkPRMerge(), is(false)); } @Test public void basic_cloud() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getId(), is("org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator" + "::https://api.github.com" + "::cloudbeers" + "::stunning-adventure")); assertThat(instance.getApiUri(), is(GitHubSCMSource.GITHUB_URL)); assertThat(instance.getRepoOwner(), is("cloudbeers")); assertThat(instance.getRepository(), is("stunning-adventure")); assertThat(instance.getCredentialsId(), is("e4d8c11a-0d24-472f-b86b-4b017c160e9a")); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)), hasProperty("trust", instanceOf(ForkPullRequestDiscoveryTrait.TrustPermission.class)) ) ) ); // Legacy API assertThat(instance.getCheckoutCredentialsId(), is(GitHubSCMSource.DescriptorImpl.SAME)); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getBuildOriginBranch(), is(true)); assertThat(instance.getBuildOriginBranchWithPR(), is(true)); assertThat(instance.getBuildOriginPRHead(), is(false)); assertThat(instance.getBuildOriginPRMerge(), is(false)); assertThat(instance.getBuildForkPRHead(), is(false)); assertThat(instance.getBuildForkPRMerge(), is(true)); } @Test public void basic_server() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getId(), is("org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator" + "::https://github.test/api/v3" + "::cloudbeers" + "::stunning-adventure")); assertThat(instance.getApiUri(), is("https://github.test/api/v3")); assertThat(instance.getRepoOwner(), is("cloudbeers")); assertThat(instance.getRepository(), is("stunning-adventure")); assertThat(instance.getCredentialsId(), is("e4d8c11a-0d24-472f-b86b-4b017c160e9a")); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)), hasProperty("trust", instanceOf(ForkPullRequestDiscoveryTrait.TrustPermission.class)) ) ) ); // Legacy API assertThat(instance.getCheckoutCredentialsId(), is(GitHubSCMSource.DescriptorImpl.SAME)); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getBuildOriginBranch(), is(true)); assertThat(instance.getBuildOriginBranchWithPR(), is(false)); assertThat(instance.getBuildOriginPRHead(), is(true)); assertThat(instance.getBuildOriginPRMerge(), is(false)); assertThat(instance.getBuildForkPRHead(), is(true)); assertThat(instance.getBuildForkPRMerge(), is(false)); } @Test public void custom_checkout_credentials() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getId(), is("org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator" + "::https://github.test/api/v3" + "::cloudbeers" + "::stunning-adventure")); assertThat(instance.getApiUri(), is("https://github.test/api/v3")); assertThat(instance.getRepoOwner(), is("cloudbeers")); assertThat(instance.getRepository(), is("stunning-adventure")); assertThat(instance.getCredentialsId(), is("e4d8c11a-0d24-472f-b86b-4b017c160e9a")); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)), hasProperty("trust", instanceOf(ForkPullRequestDiscoveryTrait.TrustPermission.class)) ), Matchers.allOf( Matchers.instanceOf(SSHCheckoutTrait.class), hasProperty("credentialsId", is("other-credentials")) ) ) ); // Legacy API assertThat(instance.getCheckoutCredentialsId(), is("other-credentials")); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getBuildOriginBranch(), is(true)); assertThat(instance.getBuildOriginBranchWithPR(), is(false)); assertThat(instance.getBuildOriginPRHead(), is(true)); assertThat(instance.getBuildOriginPRMerge(), is(false)); assertThat(instance.getBuildForkPRHead(), is(true)); assertThat(instance.getBuildForkPRMerge(), is(false)); } @Issue("JENKINS-45467") @Test public void same_checkout_credentials() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getId(), is("org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator" + "::https://github.test/api/v3" + "::cloudbeers" + "::stunning-adventure")); assertThat(instance.getApiUri(), is("https://github.test/api/v3")); assertThat(instance.getRepoOwner(), is("cloudbeers")); assertThat(instance.getRepository(), is("stunning-adventure")); assertThat(instance.getCredentialsId(), is("e4d8c11a-0d24-472f-b86b-4b017c160e9a")); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)), hasProperty("trust", instanceOf(ForkPullRequestDiscoveryTrait.TrustPermission.class)) ) ) ); // Legacy API assertThat(instance.getCheckoutCredentialsId(), is(GitHubSCMSource.DescriptorImpl.SAME)); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getBuildOriginBranch(), is(true)); assertThat(instance.getBuildOriginBranchWithPR(), is(false)); assertThat(instance.getBuildOriginPRHead(), is(true)); assertThat(instance.getBuildOriginPRMerge(), is(false)); assertThat(instance.getBuildForkPRHead(), is(true)); assertThat(instance.getBuildForkPRMerge(), is(false)); } @Test public void exclude_branches() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getId(), is("org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator" + "::https://api.github.com" + "::cloudbeers" + "::stunning-adventure")); assertThat(instance.getApiUri(), is(GitHubSCMSource.GITHUB_URL)); assertThat(instance.getRepoOwner(), is("cloudbeers")); assertThat(instance.getRepository(), is("stunning-adventure")); assertThat(instance.getCredentialsId(), is("e4d8c11a-0d24-472f-b86b-4b017c160e9a")); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)), hasProperty("trust", instanceOf(ForkPullRequestDiscoveryTrait.TrustPermission.class)) ), Matchers.allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("*")), hasProperty("excludes", is("master")) ) ) ); // Legacy API assertThat(instance.getCheckoutCredentialsId(), is(GitHubSCMSource.DescriptorImpl.SAME)); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("master")); assertThat(instance.getBuildOriginBranch(), is(true)); assertThat(instance.getBuildOriginBranchWithPR(), is(true)); assertThat(instance.getBuildOriginPRHead(), is(false)); assertThat(instance.getBuildOriginPRMerge(), is(false)); assertThat(instance.getBuildForkPRHead(), is(false)); assertThat(instance.getBuildForkPRMerge(), is(true)); } @Test public void limit_branches() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getId(), is("org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator" + "::https://api.github.com" + "::cloudbeers" + "::stunning-adventure")); assertThat(instance.getApiUri(), is(GitHubSCMSource.GITHUB_URL)); assertThat(instance.getRepoOwner(), is("cloudbeers")); assertThat(instance.getRepository(), is("stunning-adventure")); assertThat(instance.getCredentialsId(), is("e4d8c11a-0d24-472f-b86b-4b017c160e9a")); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)), hasProperty("trust", instanceOf(ForkPullRequestDiscoveryTrait.TrustPermission.class)) ), Matchers.allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("feature/*")), hasProperty("excludes", is("")) ) ) ); // Legacy API assertThat(instance.getCheckoutCredentialsId(), is(GitHubSCMSource.DescriptorImpl.SAME)); assertThat(instance.getIncludes(), is("feature/*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getBuildOriginBranch(), is(true)); assertThat(instance.getBuildOriginBranchWithPR(), is(true)); assertThat(instance.getBuildOriginPRHead(), is(false)); assertThat(instance.getBuildOriginPRMerge(), is(false)); assertThat(instance.getBuildForkPRHead(), is(false)); assertThat(instance.getBuildForkPRMerge(), is(true)); } @Test public void use_agent_checkout() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getId(), is("org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator" + "::https://api.github.com" + "::cloudbeers" + "::stunning-adventure")); assertThat(instance.getApiUri(), is(GitHubSCMSource.GITHUB_URL)); assertThat(instance.getRepoOwner(), is("cloudbeers")); assertThat(instance.getRepository(), is("stunning-adventure")); assertThat(instance.getCredentialsId(), is("e4d8c11a-0d24-472f-b86b-4b017c160e9a")); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)), hasProperty("trust", instanceOf(ForkPullRequestDiscoveryTrait.TrustPermission.class)) ), Matchers.allOf( Matchers.instanceOf(SSHCheckoutTrait.class), hasProperty("credentialsId", is(nullValue())) ) ) ); // Legacy API assertThat(instance.getCheckoutCredentialsId(), is(GitHubSCMSource.DescriptorImpl.ANONYMOUS)); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getBuildOriginBranch(), is(true)); assertThat(instance.getBuildOriginBranchWithPR(), is(true)); assertThat(instance.getBuildOriginPRHead(), is(false)); assertThat(instance.getBuildOriginPRMerge(), is(false)); assertThat(instance.getBuildForkPRHead(), is(false)); assertThat(instance.getBuildForkPRMerge(), is(true)); } @Test public void given__legacyCode__when__constructor_cloud__then__discoveryTraitDefaults() throws Exception { GitHubSCMSource instance = new GitHubSCMSource("preserve-id", null, "SAME", "e4d8c11a-0d24-472f-b86b-4b017c160e9a", "cloudbeers", "stunning-adventure"); assertThat(instance.getId(), is("preserve-id")); assertThat(instance.getApiUri(), is(GitHubSCMSource.GITHUB_URL)); assertThat(instance.getRepoOwner(), is("cloudbeers")); assertThat(instance.getRepository(), is("stunning-adventure")); assertThat(instance.getCredentialsId(), is("e4d8c11a-0d24-472f-b86b-4b017c160e9a")); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategies", is(EnumSet.of(ChangeRequestCheckoutStrategy.MERGE))), hasProperty("trust", instanceOf(ForkPullRequestDiscoveryTrait.TrustPermission.class)) ) ) ); // Legacy API assertThat(instance.getCheckoutCredentialsId(), is(GitHubSCMSource.DescriptorImpl.SAME)); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getBuildOriginBranch(), is(true)); assertThat(instance.getBuildOriginBranchWithPR(), is(true)); assertThat(instance.getBuildOriginPRHead(), is(false)); assertThat(instance.getBuildOriginPRMerge(), is(false)); assertThat(instance.getBuildForkPRHead(), is(false)); assertThat(instance.getBuildForkPRMerge(), is(true)); } @Test public void given__legacyCode__when__constructor_server__then__discoveryTraitDefaults() throws Exception { GitHubSCMSource instance = new GitHubSCMSource(null, "https://github.test/api/v3", "8b2e4f77-39c5-41a9-b63b-8d367350bfdf", "e4d8c11a-0d24-472f-b86b-4b017c160e9a", "cloudbeers", "stunning-adventure"); assertThat(instance.getId(), is(notNullValue())); assertThat(instance.getApiUri(), is("https://github.test/api/v3")); assertThat(instance.getRepoOwner(), is("cloudbeers")); assertThat(instance.getRepository(), is("stunning-adventure")); assertThat(instance.getCredentialsId(), is("e4d8c11a-0d24-472f-b86b-4b017c160e9a")); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategies", is(EnumSet.of(ChangeRequestCheckoutStrategy.MERGE))), hasProperty("trust", instanceOf(ForkPullRequestDiscoveryTrait.TrustPermission.class)) ), Matchers.allOf( Matchers.instanceOf(SSHCheckoutTrait.class), hasProperty("credentialsId", is("8b2e4f77-39c5-41a9-b63b-8d367350bfdf")) ) ) ); // Legacy API assertThat(instance.getCheckoutCredentialsId(), is("8b2e4f77-39c5-41a9-b63b-8d367350bfdf")); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getBuildOriginBranch(), is(true)); assertThat(instance.getBuildOriginBranchWithPR(), is(true)); assertThat(instance.getBuildOriginPRHead(), is(false)); assertThat(instance.getBuildOriginPRMerge(), is(false)); assertThat(instance.getBuildForkPRHead(), is(false)); assertThat(instance.getBuildForkPRMerge(), is(true)); } @Test public void given__instance__when__setTraits_empty__then__traitsEmpty() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setTraits(Collections.emptyList()); assertThat(instance.getTraits(), is(Collections.<SCMSourceTrait>emptyList())); } @Test public void given__legacyCode__when__setBuildOriginBranch__then__traitsMaintained() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setTraits(Collections.emptyList()); assertThat(instance.getTraits(), is(Collections.<SCMSourceTrait>emptyList())); instance.setBuildOriginBranch(true); assertThat(instance.getTraits(), contains(instanceOf(BranchDiscoveryTrait.class))); instance.setBuildOriginBranch(false); assertThat(instance.getTraits(), is(Collections.<SCMSourceTrait>emptyList())); instance.setBuildOriginBranchWithPR(true); assertThat(instance.getTraits(), contains(instanceOf(BranchDiscoveryTrait.class))); instance.setBuildOriginBranchWithPR(false); assertThat(instance.getTraits(), is(Collections.<SCMSourceTrait>emptyList())); instance.setBuildOriginBranchWithPR(true); instance.setBuildOriginBranch(true); assertThat(instance.getTraits(), contains(instanceOf(BranchDiscoveryTrait.class))); instance.setBuildOriginBranchWithPR(false); assertThat(instance.getTraits(), contains(instanceOf(BranchDiscoveryTrait.class))); instance.setBuildOriginBranch(false); assertThat(instance.getTraits(), is(Collections.<SCMSourceTrait>emptyList())); instance.setBuildOriginBranchWithPR(true); instance.setBuildOriginBranch(true); assertThat(instance.getTraits(), contains(instanceOf(BranchDiscoveryTrait.class))); instance.setBuildOriginBranch(false); assertThat(instance.getTraits(), contains(instanceOf(BranchDiscoveryTrait.class))); instance.setBuildOriginBranchWithPR(false); assertThat(instance.getTraits(), is(Collections.<SCMSourceTrait>emptyList())); } @Test public void given__instance__when__setTraits__then__traitsSet() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setTraits(Arrays.asList(new BranchDiscoveryTrait(1), new SSHCheckoutTrait("value"))); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(SSHCheckoutTrait.class), hasProperty("credentialsId", is("value")) ) ) ); } @Test public void given__instance__when__setApiUri__then__valueSet() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); assertThat("initial default", instance.getApiUri(), is(GitHubSCMSource.GITHUB_URL)); instance.setApiUri("https://github.test/api/v3"); assertThat(instance.getApiUri(), is("https://github.test/api/v3")); instance.setApiUri(null); assertThat(instance.getApiUri(), is(GitHubSCMSource.GITHUB_URL)); } @Test public void given__instance__when__setCredentials_empty__then__credentials_null() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setCredentialsId(""); assertThat(instance.getCredentialsId(), is(nullValue())); } @Test public void given__instance__when__setCredentials_null__then__credentials_null() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setCredentialsId(""); assertThat(instance.getCredentialsId(), is(nullValue())); } @Test public void given__instance__when__setCredentials__then__credentials_set() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setCredentialsId("test"); assertThat(instance.getCredentialsId(), is("test")); } @Test public void given__legacyCode_withoutExcludes__when__setIncludes_default__then__traitRemoved() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setTraits(Arrays.asList( new BranchDiscoveryTrait(true, false), new WildcardSCMHeadFilterTrait("feature/*", "") )); assertThat(instance.getIncludes(), is("feature/*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("feature/*")), hasProperty("excludes", is("")) ))); instance.setIncludes("*"); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getTraits(), not(Matchers.hasItem( instanceOf(WildcardSCMHeadFilterTrait.class) ))); } @Test public void given__legacyCode_withoutExcludes__when__setIncludes_value__then__traitUpdated() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setTraits(Arrays.asList( new BranchDiscoveryTrait(true, false), new WildcardSCMHeadFilterTrait("feature/*", "") )); assertThat(instance.getIncludes(), is("feature/*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("feature/*")), hasProperty("excludes", is("")) ))); instance.setIncludes("bug/*"); assertThat(instance.getIncludes(), is("bug/*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("bug/*")), hasProperty("excludes", is("")) ))); } @Test public void given__legacyCode_withoutTrait__when__setIncludes_value__then__traitAdded() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setTraits(Arrays.asList( new BranchDiscoveryTrait(true, false), new SSHCheckoutTrait("someValue") )); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getTraits(), not(Matchers.hasItem( instanceOf(WildcardSCMHeadFilterTrait.class) ))); instance.setIncludes("feature/*"); assertThat(instance.getIncludes(), is("feature/*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("feature/*")), hasProperty("excludes", is("")) ))); } @Test public void given__legacyCode_withExcludes__when__setIncludes_default__then__traitUpdated() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setTraits(Arrays.asList( new BranchDiscoveryTrait(true, false), new WildcardSCMHeadFilterTrait("feature/*", "feature/ignore"), new SSHCheckoutTrait("someValue") )); assertThat(instance.getIncludes(), is("feature/*")); assertThat(instance.getExcludes(), is("feature/ignore")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("feature/*")), hasProperty("excludes", is("feature/ignore")) ))); instance.setIncludes("*"); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("feature/ignore")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("*")), hasProperty("excludes", is("feature/ignore")) ))); } @Test public void given__legacyCode_withExcludes__when__setIncludes_value__then__traitUpdated() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setTraits(Arrays.asList( new BranchDiscoveryTrait(true, false), new WildcardSCMHeadFilterTrait("feature/*", "feature/ignore"), new SSHCheckoutTrait("someValue") )); assertThat(instance.getIncludes(), is("feature/*")); assertThat(instance.getExcludes(), is("feature/ignore")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("feature/*")), hasProperty("excludes", is("feature/ignore")) ))); instance.setIncludes("bug/*"); assertThat(instance.getIncludes(), is("bug/*")); assertThat(instance.getExcludes(), is("feature/ignore")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("bug/*")), hasProperty("excludes", is("feature/ignore")) ))); } @Test public void given__legacyCode_withoutIncludes__when__setExcludes_default__then__traitRemoved() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setTraits(Arrays.asList( new BranchDiscoveryTrait(true, false), new WildcardSCMHeadFilterTrait("*", "feature/ignore"), new SSHCheckoutTrait("someValue") )); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("feature/ignore")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("*")), hasProperty("excludes", is("feature/ignore")) ))); instance.setExcludes(""); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getTraits(), not(Matchers.hasItem( instanceOf(WildcardSCMHeadFilterTrait.class) ))); } @Test public void given__legacyCode_withoutIncludes__when__setExcludes_value__then__traitUpdated() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setTraits(Arrays.asList( new BranchDiscoveryTrait(true, false), new WildcardSCMHeadFilterTrait("*", "feature/ignore"), new SSHCheckoutTrait("someValue") )); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("feature/ignore")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("*")), hasProperty("excludes", is("feature/ignore")) ))); instance.setExcludes("bug/ignore"); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("bug/ignore")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("*")), hasProperty("excludes", is("bug/ignore")) ))); } @Test public void given__legacyCode_withoutTrait__when__setExcludes_value__then__traitAdded() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setTraits(Arrays.asList( new BranchDiscoveryTrait(true, false), new SSHCheckoutTrait("someValue") )); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getTraits(), not(Matchers.hasItem( instanceOf(WildcardSCMHeadFilterTrait.class) ))); instance.setExcludes("feature/ignore"); assertThat(instance.getIncludes(), is("*")); assertThat(instance.getExcludes(), is("feature/ignore")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("*")), hasProperty("excludes", is("feature/ignore")) ))); } @Test public void given__legacyCode_withIncludes__when__setExcludes_default__then__traitUpdated() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setTraits(Arrays.asList( new BranchDiscoveryTrait(true, false), new WildcardSCMHeadFilterTrait("feature/*", "feature/ignore"), new SSHCheckoutTrait("someValue") )); assertThat(instance.getIncludes(), is("feature/*")); assertThat(instance.getExcludes(), is("feature/ignore")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("feature/*")), hasProperty("excludes", is("feature/ignore")) ))); instance.setExcludes(""); assertThat(instance.getIncludes(), is("feature/*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("feature/*")), hasProperty("excludes", is("")) ))); } @Test public void given__legacyCode_withIncludes__when__setExcludes_value__then__traitUpdated() { GitHubSCMSource instance = new GitHubSCMSource("testing", "test-repo"); instance.setTraits(Arrays.asList( new BranchDiscoveryTrait(true, false), new WildcardSCMHeadFilterTrait("feature/*", ""), new SSHCheckoutTrait("someValue") )); assertThat(instance.getIncludes(), is("feature/*")); assertThat(instance.getExcludes(), is("")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("feature/*")), hasProperty("excludes", is("")) ))); instance.setExcludes("feature/ignore"); assertThat(instance.getIncludes(), is("feature/*")); assertThat(instance.getExcludes(), is("feature/ignore")); assertThat(instance.getTraits(), Matchers.hasItem(allOf( instanceOf(WildcardSCMHeadFilterTrait.class), hasProperty("includes", is("feature/*")), hasProperty("excludes", is("feature/ignore")) ))); } @Test public void build_000000() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), empty() ); } @Test public void build_000001() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), contains( Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_000010() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), contains( Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_000011() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), contains( Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_000100() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), contains( Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_000101() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_000110() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_000111() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_001000() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), contains( Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_001001() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_001010() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_001011() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_001100() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), contains( Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_001101() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_001110() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_001111() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_010000() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), contains( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ) ) ); } @Test public void build_010001() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_010010() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_010011() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_010100() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_010101() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_010110() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_010111() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_011000() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_011001() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_011010() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_011011() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_011100() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_011101() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_011110() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_011111() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(false)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_100000() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), contains( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ) ) ); } @Test public void build_100001() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_100010() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_100011() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_100100() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_100101() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_100110() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_100111() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_101000() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_101001() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_101010() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_101011() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_101100() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_101101() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_101110() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_101111() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(false)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_110000() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), contains( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ) ) ); } @Test public void build_110001() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_110010() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_110011() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_110100() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_110101() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_110110() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_110111() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_111000() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_111001() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_111010() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_111011() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_111100() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } @Test public void build_111101() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(2)) ) ) ); } @Test public void build_111110() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(1)) ) ) ); } @Test public void build_111111() throws Exception { GitHubSCMSource instance = load(); assertThat(instance.getTraits(), containsInAnyOrder( Matchers.allOf( instanceOf(BranchDiscoveryTrait.class), hasProperty("buildBranch", is(true)), hasProperty("buildBranchesWithPR", is(true)) ), Matchers.allOf( instanceOf(OriginPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ), Matchers.allOf( instanceOf(ForkPullRequestDiscoveryTrait.class), hasProperty("strategyId", is(3)) ) ) ); } }