Skip to content

Commit

Permalink
More test #123
Browse files Browse the repository at this point in the history
  • Loading branch information
tomasbjerre committed Jun 28, 2019
1 parent 13bce9c commit f08ea0c
Show file tree
Hide file tree
Showing 4 changed files with 134 additions and 8 deletions.
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# Generic Webhook Plugin Changelog
Changelog of Generic Webhook Plugin.
## Unreleased
### GitHub [#122](https://github.com/jenkinsci/generic-webhook-trigger-plugin/issues/122) RegExFilterText Not Evaluating Variable? *question*

**Testing exact matching of single variable #122**


[13bce9c546f3c92](https://github.com/jenkinsci/generic-webhook-trigger-plugin/commit/13bce9c546f3c92) Tomas Bjerre *2019-06-19 19:03:38*


### GitHub [#123](https://github.com/jenkinsci/generic-webhook-trigger-plugin/issues/123) Webhook Issue with regexpfiltertext for multiple parameters

**More test #123**


[141649403584f64](https://github.com/jenkinsci/generic-webhook-trigger-plugin/commit/141649403584f64) Tomas Bjerre *2019-06-28 12:38:48*


## 1.54 (2019-05-06 13:29:39)
### GitHub [#115](https://github.com/jenkinsci/generic-webhook-trigger-plugin/issues/115) Blank parameter trigger the job even if you specified a filter

Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
<jenkins.version>2.7.4</jenkins.version>
<findbugs.failOnError>false</findbugs.failOnError>
<maven.javadoc.skip>true</maven.javadoc.skip>
<fmt>2.8</fmt>
<fmt>2.9</fmt>
<violations.version>1.19</violations.version>
<changelog>1.59</changelog>
<changelog>1.60</changelog>
</properties>

<artifactId>generic-webhook-trigger</artifactId>
Expand Down
20 changes: 14 additions & 6 deletions src/test/java/org/jenkinsci/plugins/gwt/bdd/Stepdefs.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ public void givenGenericVariables(final List<GenericVariablePojo> given) {
}

@Given("^variable ([a-z]+?) has regexpFilter: (.*)$")
public void givenGenericVariables(String variable, String regexpFilter) {
for (GenericVariable gv : featureState.getGenericVariables()) {
public void givenGenericVariables(final String variable, final String regexpFilter) {
for (final GenericVariable gv : featureState.getGenericVariables()) {
if (gv.getVariableName().equals(variable)) {
gv.setRegexpFilter(regexpFilter);
}
Expand Down Expand Up @@ -86,7 +86,7 @@ public void variablesAreResolved(final List<GenericVariablesResolvedPojo> given)
}

@Then("^variable ([a-z]+?) is resolved to:$")
public void variableIsResolvedTo(String variable, String expected) {
public void variableIsResolvedTo(final String variable, final String expected) {
assertThat(getResolvedVariables().get(variable)) //
.as(variable) //
.isEqualTo(expected);
Expand All @@ -102,11 +102,15 @@ public void jobShouldNotBeTriggered() {
isMatching(false);
}

private boolean isMatching(boolean expected) {
@Then("^filter text is rendered to: (.*)$")
public void filterTextIsRenderedTo(final String given) {
assertThat(renderedText(getResolvedVariables())).isEqualTo(given);
}

private boolean isMatching(final boolean expected) {
final Map<String, String> resolvedVariables = getResolvedVariables();

final String renderedRegexpFilterText =
renderText(featureState.getRegexpFilterText(), resolvedVariables);
final String renderedRegexpFilterText = renderedText(resolvedVariables);
final boolean isMatching =
Renderer.isMatching(renderedRegexpFilterText, featureState.getRegexpFilterExpression());
if (!isMatching && expected || isMatching && !expected) {
Expand All @@ -120,6 +124,10 @@ private boolean isMatching(boolean expected) {
return isMatching;
}

private String renderedText(final Map<String, String> resolvedVariables) {
return renderText(featureState.getRegexpFilterText(), resolvedVariables);
}

private Map<String, String> getResolvedVariables() {
final Map<String, String> resolvedVariables =
new VariablesResolver(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
Feature: It should be possible to trigger for Bitbucket Server on regs_changed.

Scenario: Trigger a job when a commit is pushed.

Given the following generic variables are configured:
| variable | expression | expressionType | defaultValue | regexpFilter |
| refsb | $.changes[0].ref.id | JSONPath | | ^(refs/heads/\|refs/remotes/origin/) |
| refsbc | $.pullRequest.toRef.id | JSONPath | | ^(refs/heads/\|refs/remotes/origin/) |

Given filter is configured with text: $refsb$refsbc
Given filter is configured with expression: ^(test)*?$


When received post content is:
"""
{
"eventKey": "repo:refs_changed",
"date": "2019-06-28T11:05:24+0000",
"actor": {
"name": "xxxxxxx",
"emailAddress": "xxxxxxxxxxxxxxxxxx",
"id": 563,
"displayName": "xxxxxxxxxxxxxxxxx",
"active": true,
"slug": "xxxxxxx",
"type": "NORMAL",
"links": {
"self": [
{
"href": "https:\/\/xxxxxxxxxxxxxxxxxxxxxx"
}
]
}
},
"repository": {
"slug": "xxxxx-xxxx",
"id": 80,
"name": "xxx-xxxxx",
"scmId": "git",
"state": "AVAILABLE",
"statusMessage": "Available",
"forkable": true,
"project": {
"key": "xxx",
"id": 128,
"name": "xxxx",
"description": "A Bitbucket t.",
"public": false,
"type": "NORMAL",
"links": {
"self": [
{
"href": "https:\/\/xxxxxxxxxxxxxx"
}
]
}
},
"public": false,
"links": {
"clone": [
{
"href": "xxxxxxxxxxxxxxxxxx",
"name": "http"
},
{
"href": "xxxxxxxxxxxxxxxxxx",
"name": "ssh"
}
],
"self": [
{
"href": "xxxxxxxxxxx"
}
]
}
},
"changes": [
{
"ref": {
"id": "refs\/heads\/test",
"displayId": "test",
"type": "BRANCH"
},
"refId": "refs\/heads\/test",
"fromHash": "xxxxxxxxxxxxxx",
"toHash": "xxxxxxxxxxxxxxxxx",
"type": "UPDATE"
}
]
}
"""

Then the job is triggered

Then filter text is rendered to: test

Then variables are resolved to:
| variable | value |
| refsb | test |
| refsbc | |

0 comments on commit f08ea0c

Please sign in to comment.