From 61dd239d6eb79c0d11549cb67b584781c06d5927 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Mon, 3 Aug 2020 10:44:20 -0400 Subject: [PATCH] Actually support PowerMock --- .gitignore | 2 +- CONTRIBUTING.adoc | 7 ++++ pom.xml | 5 +++ src/it/powermock/invoker.properties | 1 + src/it/powermock/pom.xml | 42 +++++++++++++++++++ .../powermock/src/main/resources/index.jelly | 4 ++ .../powermock/src/test/java/test/XTest.java | 32 ++++++++++++++ 7 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 src/it/powermock/invoker.properties create mode 100644 src/it/powermock/pom.xml create mode 100644 src/it/powermock/src/main/resources/index.jelly create mode 100644 src/it/powermock/src/test/java/test/XTest.java diff --git a/.gitignore b/.gitignore index 98f5a1a98d..539e5a9153 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ target work -*.class +build.log # Mobile Tools for Java (J2ME) .mtj.tmp/ diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc index f6c23bf8b3..d292136814 100644 --- a/CONTRIBUTING.adoc +++ b/CONTRIBUTING.adoc @@ -15,6 +15,13 @@ To run and build the repository with integration tests, you can execute mvn clean verify +To run one IT: + +[source,bash] +---- +mvn verify -Dinvoker.test=powermock +---- + ## Building and using snapshots Snapshots might be needed to provide reference implementations for Plugin POM patches. diff --git a/pom.xml b/pom.xml index e1431b3912..50499cd5e0 100644 --- a/pom.xml +++ b/pom.xml @@ -173,6 +173,11 @@ objenesis 3.1 + + org.hamcrest + hamcrest-core + 2.2 + diff --git a/src/it/powermock/invoker.properties b/src/it/powermock/invoker.properties new file mode 100644 index 0000000000..de21ce6dfe --- /dev/null +++ b/src/it/powermock/invoker.properties @@ -0,0 +1 @@ +invoker.goals=-Dstyle.color=always -ntp clean install diff --git a/src/it/powermock/pom.xml b/src/it/powermock/pom.xml new file mode 100644 index 0000000000..563681fec4 --- /dev/null +++ b/src/it/powermock/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + org.jenkins-ci.plugins + plugin + @project.version@ + + + io.jenkins.plugins + powermock + 1.0-SNAPSHOT + hpi + + 2.235.1 + 8 + + + + org.powermock + powermock-api-mockito2 + test + + + org.powermock + powermock-module-junit4 + test + + + + + repo.jenkins-ci.org + https://repo.jenkins-ci.org/public/ + + + + + repo.jenkins-ci.org + https://repo.jenkins-ci.org/public/ + + + diff --git a/src/it/powermock/src/main/resources/index.jelly b/src/it/powermock/src/main/resources/index.jelly new file mode 100644 index 0000000000..0bc1db2e4b --- /dev/null +++ b/src/it/powermock/src/main/resources/index.jelly @@ -0,0 +1,4 @@ + +
+ irrelevant +
diff --git a/src/it/powermock/src/test/java/test/XTest.java b/src/it/powermock/src/test/java/test/XTest.java new file mode 100644 index 0000000000..633c5222ad --- /dev/null +++ b/src/it/powermock/src/test/java/test/XTest.java @@ -0,0 +1,32 @@ +package test; + +import jenkins.model.Jenkins; +import static org.junit.Assert.assertEquals; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest(Jenkins.class) +public class XTest { + + @Mock + private Jenkins jenkins; + + @Before + public void setUp() throws Exception { + PowerMockito.mockStatic(Jenkins.class); + PowerMockito.when(Jenkins.get()).thenReturn(jenkins); + PowerMockito.when(jenkins.getSystemMessage()).thenReturn("mocked"); + } + + @Test + public void smokes() { + assertEquals("mocked", Jenkins.get().getSystemMessage()); + } + +}