forked from wildfly/wildfly-github-bot
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPRRuleDescriptionCheckTest.java
More file actions
93 lines (83 loc) · 3.68 KB
/
PRRuleDescriptionCheckTest.java
File metadata and controls
93 lines (83 loc) · 3.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package org.wildfly.bot;
import io.quarkiverse.githubapp.testing.GitHubAppTest;
import io.quarkus.test.junit.QuarkusTest;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.kohsuke.github.GHPullRequest;
import org.kohsuke.github.GHRepository;
import org.mockito.Mockito;
import org.wildfly.bot.utils.TestConstants;
import org.wildfly.bot.utils.WildflyGitHubBotTesting;
import org.wildfly.bot.utils.testing.PullRequestJson;
import org.wildfly.bot.utils.testing.internal.TestModel;
/**
* Tests for the WildFly -> Rules -> Body checks.
*/
@QuarkusTest
@GitHubAppTest
public class PRRuleDescriptionCheckTest {
private static String wildflyConfigFile;
private static PullRequestJson pullRequestJson;
@BeforeAll
static void setPullRequestJson() throws Exception {
TestModel.defaultBeforeEachJsons();
}
@Test
void testSuccessfulBodyCheck() throws Throwable {
pullRequestJson = TestModel.getPullRequestJson();
wildflyConfigFile = """
wildfly:
rules:
- id: "Description"
body: "redhat.atlassian.net"
notify: [Tadpole]
""";
TestModel.given(mocks -> WildflyGitHubBotTesting.mockRepo(mocks, wildflyConfigFile, pullRequestJson))
.pullRequestEvent(pullRequestJson)
.then(mocks -> {
GHPullRequest mockedPR = mocks.pullRequest(pullRequestJson.id());
Mockito.verify(mockedPR).comment("/cc @Tadpole [Description]");
GHRepository repo = mocks.repository(TestConstants.TEST_REPO);
WildflyGitHubBotTesting.verifyFormatSuccess(repo, pullRequestJson);
});
}
@Test
void testFailedBodyCheck() throws Throwable {
pullRequestJson = TestModel.setPullRequestJsonBuilder(
pullRequestJsonBuilder -> pullRequestJsonBuilder.description(TestConstants.INVALID_DESCRIPTION));
wildflyConfigFile = """
wildfly:
rules:
- id: "Description"
body: "redhat.atlassian.net"
notify: [Tadpole]
""";
TestModel.given(mocks -> WildflyGitHubBotTesting.mockRepo(mocks, wildflyConfigFile, pullRequestJson))
.pullRequestEvent(pullRequestJson)
.then(mocks -> {
GHPullRequest mockedPR = mocks.pullRequest(pullRequestJson.id());
Mockito.verify(mockedPR, Mockito.never()).comment("/cc @Tadpole [Description]");
GHRepository repo = mocks.repository(TestConstants.TEST_REPO);
WildflyGitHubBotTesting.verifyFormatSuccess(repo, pullRequestJson);
});
}
@Test
void testTitleBodyCheckForBodyCaseInsensitive() throws Throwable {
pullRequestJson = TestModel.getPullRequestJson();
wildflyConfigFile = """
wildfly:
rules:
- id: "Description"
body: "REDHAT.ATLASSIAN.NET"
notify: [Tadpole]
""";
TestModel.given(mocks -> WildflyGitHubBotTesting.mockRepo(mocks, wildflyConfigFile, pullRequestJson))
.pullRequestEvent(pullRequestJson)
.then(mocks -> {
GHPullRequest mockedPR = mocks.pullRequest(pullRequestJson.id());
Mockito.verify(mockedPR).comment("/cc @Tadpole [Description]");
GHRepository repo = mocks.repository(TestConstants.TEST_REPO);
WildflyGitHubBotTesting.verifyFormatSuccess(repo, pullRequestJson);
});
}
}