From 108723a32c7c5ec293f28d87e3e96205fe9586ee Mon Sep 17 00:00:00 2001 From: Tomas Bjerre Date: Fri, 16 Nov 2018 20:28:24 +0100 Subject: [PATCH] Example of ignoring removal or creation of branches --- .../jenkinsci/plugins/gwt/bdd/Stepdefs.java | 15 ++-- .../gitlab-push-ignore-create-branch.feature | 80 +++++++++++++++++++ 2 files changed, 88 insertions(+), 7 deletions(-) create mode 100644 src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-push-ignore-create-branch.feature diff --git a/src/test/java/org/jenkinsci/plugins/gwt/bdd/Stepdefs.java b/src/test/java/org/jenkinsci/plugins/gwt/bdd/Stepdefs.java index 0694933..486490d 100644 --- a/src/test/java/org/jenkinsci/plugins/gwt/bdd/Stepdefs.java +++ b/src/test/java/org/jenkinsci/plugins/gwt/bdd/Stepdefs.java @@ -2,6 +2,7 @@ import static com.google.common.base.Strings.isNullOrEmpty; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.fail; import static org.jenkinsci.plugins.gwt.Renderer.renderText; import com.google.gson.GsonBuilder; @@ -12,6 +13,8 @@ import java.util.List; import java.util.Map; import java.util.logging.Logger; + +import org.assertj.core.api.Assertions; import org.jenkinsci.plugins.gwt.ExpressionType; import org.jenkinsci.plugins.gwt.GenericVariable; import org.jenkinsci.plugins.gwt.Renderer; @@ -77,25 +80,23 @@ public void variablesAreResolved(final List given) @Then("^the job is triggered$") public void jobShouldBeTriggered() { - assertThat(isMatching()) // - .isTrue(); + isMatching(true); } @Then("^the job is not triggered$") public void jobShouldNotBeTriggered() { - assertThat(isMatching()) // - .isFalse(); + isMatching(false); } - private boolean isMatching() { + private boolean isMatching(boolean expected) { final Map resolvedVariables = getResolvedVariables(); final String renderedRegexpFilterText = renderText(featureState.getRegexpFilterText(), resolvedVariables); final boolean isMatching = Renderer.isMatching(renderedRegexpFilterText, featureState.getRegexpFilterExpression()); - if (!isMatching) { - LOG.info( + if (!isMatching && expected || isMatching && !expected) { + fail( "Text: \"" + renderedRegexpFilterText + "\" does not match \"" diff --git a/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-push-ignore-create-branch.feature b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-push-ignore-create-branch.feature new file mode 100644 index 0000000..ce8f82e --- /dev/null +++ b/src/test/resources/org/jenkinsci/plugins/gwt/bdd/gitlab/gitlab-push-ignore-create-branch.feature @@ -0,0 +1,80 @@ +Feature: It should be possible to trigger for GitLab push events and ignore branch creation. + + Scenario: Push events happens. + + Given the following generic variables are configured: + | variable | expression | expressionType | defaultValue | regexpFilter | + | object_kind | $.object_kind | JSONPath | | | + | before | $.before | JSONPath | | | + | after | $.after | JSONPath | | | + | ref | $.ref | JSONPath | | | + | git_ssh_url | $.repository.git_ssh_url | JSONPath | | | + + Given filter is configured with text: $object_kind $before $after + Given filter is configured with expression: ^push\s(?!0{40}).{40}\s(?!0{40}).{40}$ + + + When received post content is: + """ + { + "object_kind": "push", + "before": "0000000000000000000000000000000000000000", + "after": "f34c80f418afb802094f1ba42ad0ec1a20c7a02s", + "ref": "refs/heads/master", + "repository":{ + "git_ssh_url":"git@example.com:mike/diaspora.git", + } + } + """ + Then the job is not triggered + Then variables are resolved to: + | variable | value | + | object_kind | push | + | before | 0000000000000000000000000000000000000000 | + | after | f34c80f418afb802094f1ba42ad0ec1a20c7a02s | + | ref | refs/heads/master | + | git_ssh_url | git@example.com:mike/diaspora.git | + + + When received post content is: + """ + { + "object_kind": "push", + "before": "f34c80f418afb802094f1ba42ad0ec1a20c7a02s", + "after": "0000000000000000000000000000000000000000", + "ref": "refs/heads/master", + "repository":{ + "git_ssh_url":"git@example.com:mike/diaspora.git", + } + } + """ + Then the job is not triggered + Then variables are resolved to: + | variable | value | + | object_kind | push | + | before | f34c80f418afb802094f1ba42ad0ec1a20c7a02s | + | after | 0000000000000000000000000000000000000000 | + | ref | refs/heads/master | + | git_ssh_url | git@example.com:mike/diaspora.git | + + + When received post content is: + """ + { + "object_kind": "push", + "before": "0023123123123123123123123123123123101010", + "after": "f34c80f418afb802094f1ba42ad0ec1a20c7a02s", + "ref": "refs/heads/master", + "repository":{ + "git_ssh_url":"git@example.com:mike/diaspora.git", + } + } + """ + Then the job is triggered + Then variables are resolved to: + | variable | value | + | object_kind | push | + | before | 0023123123123123123123123123123123101010 | + | after | f34c80f418afb802094f1ba42ad0ec1a20c7a02s | + | ref | refs/heads/master | + | git_ssh_url | git@example.com:mike/diaspora.git |