Skip to content

Commit 13cab92

Browse files
authored
Merge pull request #64 from atlassian/Remove-PowerMock-agents
Remove power mock agents
2 parents d46c116 + 46922db commit 13cab92

15 files changed

Lines changed: 38 additions & 145 deletions

README.md

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,3 @@ Make sure maven & your IDE uses this java version.
3333

3434
At the Package Explorer, select the jsp-sample project, 2nd bottom of the mouse and Run As > Run Server
3535
Select a Tomcat Server in order to deploy the server.
36-
37-
### Unit Tests
38-
39-
Known issues while testing:
40-
41-
* [ECLEmma coverage plugin incompatible with PowerMock](http://stackoverflow.com/questions/23363212/powermock-eclemma-coverage-issue)
42-
43-
* When using @PrepareForTest and PowerMockito the breakpoints not does [not stop when debugging](http://stackoverflow.com/questions/35140575/powermockito-junit-and-eclemma-debugging-dosent-work). The solution is define Rules.
44-
45-
* Java7+ enforces bytecode verification and with Powermock you can experience a [java.lang.VerifyError](http://www.notonlyanecmplace.com/java-7-enforces-bytecode-verification/).
46-
At Java8 bytecode verification is mandatory and there is no option to disable it :(

core/pom.xml

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,27 +19,9 @@
1919
<scope>test</scope>
2020
</dependency>
2121
<dependency>
22-
<groupId>org.powermock</groupId>
23-
<artifactId>powermock-api-mockito</artifactId>
24-
<version>1.6.2</version>
25-
<scope>test</scope>
26-
</dependency>
27-
<dependency>
28-
<groupId>org.powermock</groupId>
29-
<artifactId>powermock-module-junit4</artifactId>
30-
<version>1.6.2</version>
31-
<scope>test</scope>
32-
</dependency>
33-
<dependency>
34-
<groupId>org.powermock</groupId>
35-
<artifactId>powermock-module-javaagent</artifactId>
36-
<version>1.6.0</version>
37-
<scope>test</scope>
38-
</dependency>
39-
<dependency>
40-
<groupId>org.powermock</groupId>
41-
<artifactId>powermock-module-junit4-rule-agent</artifactId>
42-
<version>1.6.4</version>
22+
<groupId>org.mockito</groupId>
23+
<artifactId>mockito-core</artifactId>
24+
<version>1.10.19</version>
4325
<scope>test</scope>
4426
</dependency>
4527

@@ -111,7 +93,7 @@
11193
<artifactId>maven-surefire-plugin</artifactId>
11294
<version>2.12</version>
11395
<configuration>
114-
<argLine>-XX:-UseSplitVerifier ${jacoco.agent.argLine}</argLine>
96+
<argLine>${jacoco.agent.argLine}</argLine>
11597
</configuration>
11698
</plugin>
11799
</plugins>

core/src/main/java/com/onelogin/saml2/Auth.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.ArrayList;
99
import java.util.Collection;
1010
import java.util.HashMap;
11+
import java.util.LinkedHashMap;
1112
import java.util.List;
1213
import java.util.Map;
1314

@@ -440,7 +441,7 @@ public void processSLO(Boolean keepLocalSession, String requestId) throws Except
440441
logoutResponseBuilder.build(inResponseTo);
441442
String samlLogoutResponse = logoutResponseBuilder.getEncodedLogoutResponse();
442443

443-
Map<String, String> parameters = new HashMap<String, String>();
444+
Map<String, String> parameters = new LinkedHashMap<String, String>();
444445

445446
parameters.put("SAMLResponse", samlLogoutResponse);
446447

core/src/test/java/com/onelogin/saml2/test/AuthTest.java

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -32,50 +32,17 @@
3232
import javax.servlet.http.HttpSession;
3333

3434
import org.junit.Test;
35-
import org.junit.runner.RunWith;
36-
import org.powermock.core.classloader.annotations.PrepareForTest;
3735

3836
import com.onelogin.saml2.Auth;
39-
import com.onelogin.saml2.authn.SamlResponse;
4037
import com.onelogin.saml2.exception.SettingsException;
4138
import com.onelogin.saml2.exception.XMLEntityException;
4239
import com.onelogin.saml2.settings.Saml2Settings;
4340
import com.onelogin.saml2.settings.SettingsBuilder;
4441
import com.onelogin.saml2.util.Constants;
4542
import com.onelogin.saml2.util.Util;
4643

47-
/*
48-
* Known issues while testing
49-
*
50-
* ECLEmma coverage plugin incompatible with PowerMock
51-
* http://stackoverflow.com/questions/23363212/powermock-eclemma-coverage-issue
52-
*
53-
* import org.junit.runner.RunWith;
54-
* import org.powermock.modules.junit4.PowerMockRunner;
55-
* @RunWith(PowerMockRunner.class)
56-
*
57-
*/
58-
@PrepareForTest({Auth.class})
5944
public class AuthTest {
6045

61-
/*
62-
* When using @PrepareForTest and PowerMockito the breakpoints when debugging
63-
* does not work. Define Rules!
64-
* (http://stackoverflow.com/questions/35140575/powermockito-junit-and-eclemma-debugging-dosent-work)
65-
*
66-
* https://github.com/jayway/powermock/wiki/PowerMockRule
67-
*
68-
* import org.junit.Rule;
69-
* import org.powermock.modules.junit4.rule.PowerMockRule;
70-
* @Rule
71-
* public PowerMockRule rule = new PowerMockRule();
72-
*
73-
*/
74-
75-
//import org.powermock.modules.junit4.rule.PowerMockRule;
76-
//@Rule
77-
//public PowerMockRule rule = new PowerMockRule();
78-
7946
/**
8047
* Tests the constructor of Auth
8148
* Case: No parameters
@@ -527,7 +494,7 @@ public void testProcessSLORequestSignRes() throws Exception {
527494
assertFalse(auth.isAuthenticated());
528495
assertTrue(auth.getErrors().isEmpty());
529496
auth.processSLO();
530-
verify(response).sendRedirect(matches("http:\\/\\/idp.example.com\\/simplesaml\\/saml2\\/idp\\/SingleLogoutService.php\\?SAMLResponse=(.)*&SigAlg=http%3A%2F%2Fwww.w3.org%2F2001%2F04%2Fxmldsig-more%23rsa-sha512&RelayState=http%3A%2F%2Flocalhost%3A8080%2Fexpected.jsp&Signature=(.)*"));
497+
verify(response).sendRedirect(matches("http:\\/\\/idp.example.com\\/simplesaml\\/saml2\\/idp\\/SingleLogoutService.php\\?SAMLResponse=(.)*&RelayState=http%3A%2F%2Flocalhost%3A8080%2Fexpected.jsp&SigAlg=http%3A%2F%2Fwww.w3.org%2F2001%2F04%2Fxmldsig-more%23rsa-sha512&Signature=(.)*"));
531498
verify(session, times(1)).invalidate();
532499
assertTrue(auth.getErrors().isEmpty());
533500
}

core/src/test/java/com/onelogin/saml2/test/MetadataTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import java.security.cert.CertificateEncodingException;
1313
import java.util.Calendar;
1414

15-
import org.powermock.core.classloader.annotations.PrepareForTest;
1615
import org.w3c.dom.Document;
1716
import org.junit.Test;
1817

@@ -25,7 +24,6 @@
2524
/**
2625
* Tests the com.onelogin.saml2.Metadata class
2726
*/
28-
@PrepareForTest({Metadata.class})
2927
public class MetadataTest {
3028
/**
3129
* Tests the constructor method of Metadata

core/src/test/java/com/onelogin/saml2/test/authn/AuthnRequestTest.java

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,19 @@
44
import static org.hamcrest.CoreMatchers.not;
55
import static org.junit.Assert.assertEquals;
66
import static org.junit.Assert.assertThat;
7-
import static org.mockito.Mockito.mock;
8-
import static org.mockito.Mockito.verify;
9-
import static org.mockito.Mockito.when;
10-
import static org.powermock.api.mockito.PowerMockito.when;
11-
import static org.powermock.api.support.membermodification.MemberMatcher.method;
127

138
import java.util.ArrayList;
14-
import java.util.HashMap;
159
import java.util.List;
16-
import java.util.Map;
1710

18-
import javax.servlet.http.HttpServletRequest;
19-
import javax.servlet.http.HttpServletResponse;
20-
21-
import org.junit.Rule;
2211
import org.junit.Test;
23-
import org.powermock.api.mockito.PowerMockito;
24-
import org.powermock.core.classloader.annotations.PrepareForTest;
25-
//import org.powermock.modules.junit4.PowerMockRunner;
26-
import org.powermock.modules.junit4.rule.PowerMockRule;
2712

2813
import com.onelogin.saml2.authn.AuthnRequest;
2914
import com.onelogin.saml2.settings.Saml2Settings;
3015
import com.onelogin.saml2.settings.SettingsBuilder;
3116
import com.onelogin.saml2.util.Util;
3217

33-
@PrepareForTest({AuthnRequest.class})
3418
public class AuthnRequestTest {
3519

36-
@Rule
37-
public PowerMockRule rule = new PowerMockRule();
38-
3920
/**
4021
* Tests the getEncodedAuthnRequest method of AuthnRequest
4122
*
@@ -47,11 +28,13 @@ public class AuthnRequestTest {
4728
public void testGetEncodedAuthnRequestSimulated() throws Exception {
4829
Saml2Settings settings = new SettingsBuilder().fromFile("config/config.min.properties").build();
4930

50-
String authnRequestString = Util.getFileAsString("data/requests/authn_request.xml");
51-
AuthnRequest authnRequest = PowerMockito.spy(new AuthnRequest(settings));
52-
53-
when(authnRequest, method(AuthnRequest.class, "getAuthnRequestXml")).withNoArguments().thenReturn(
54-
authnRequestString);
31+
final String authnRequestString = Util.getFileAsString("data/requests/authn_request.xml");
32+
AuthnRequest authnRequest = new AuthnRequest(settings) {
33+
@Override
34+
protected String getAuthnRequestXml() {
35+
return authnRequestString;
36+
}
37+
};
5538

5639
String expectedAuthnRequestStringBase64 = Util.getFileAsString("data/requests/authn_request.xml.deflated.base64");
5740
String authnRequestStringBase64 = authnRequest.getEncodedAuthnRequest();
@@ -278,4 +261,4 @@ public void testAuthNDestination() throws Exception {
278261
assertThat(authnRequestStr, containsString("<samlp:AuthnRequest"));
279262
assertThat(authnRequestStr, not(containsString("Destination=\"http://idp.example.com/simplesaml/saml2/idp/SSOService.php\"")));
280263
}
281-
}
264+
}

core/src/test/java/com/onelogin/saml2/test/authn/AuthnResponseTest.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818

1919
import org.junit.Rule;
2020
import org.junit.Test;
21-
import org.powermock.core.classloader.annotations.PrepareForTest;
22-
import org.powermock.modules.junit4.rule.PowerMockRule;
2321
import org.w3c.dom.Document;
2422
import org.w3c.dom.Node;
2523
import org.w3c.dom.NodeList;
@@ -31,12 +29,8 @@
3129
import com.onelogin.saml2.util.Util;
3230
import com.onelogin.saml2.util.Constants;
3331

34-
@PrepareForTest({SamlResponse.class})
3532
public class AuthnResponseTest {
36-
37-
@Rule
38-
public PowerMockRule rule = new PowerMockRule();
39-
33+
4034
/**
4135
* Tests the constructor of SamlResponse
4236
*

core/src/test/java/com/onelogin/saml2/test/logout/LogoutRequestTest.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import static org.junit.Assert.assertTrue;
1010
import static org.mockito.Mockito.mock;
1111
import static org.mockito.Mockito.when;
12-
import static org.powermock.api.support.membermodification.MemberMatcher.method;
1312

1413
import java.util.ArrayList;
1514
import java.util.List;
@@ -23,24 +22,16 @@
2322

2423
import org.w3c.dom.Document;
2524

26-
import org.junit.Rule;
2725
import org.junit.Test;
28-
import org.powermock.api.mockito.PowerMockito;
29-
import org.powermock.core.classloader.annotations.PrepareForTest;
30-
import org.powermock.modules.junit4.rule.PowerMockRule;
3126

3227
import com.onelogin.saml2.exception.XMLEntityException;
3328
import com.onelogin.saml2.logout.LogoutRequest;
3429
import com.onelogin.saml2.settings.Saml2Settings;
3530
import com.onelogin.saml2.settings.SettingsBuilder;
3631
import com.onelogin.saml2.util.Util;
3732

38-
@PrepareForTest({LogoutRequest.class})
3933
public class LogoutRequestTest {
4034

41-
@Rule
42-
public PowerMockRule rule = new PowerMockRule();
43-
4435
/**
4536
* Tests the constructor and the getEncodedLogoutRequest method of LogoutRequest
4637
*
@@ -52,10 +43,13 @@ public class LogoutRequestTest {
5243
public void testGetEncodedLogoutRequestSimulated() throws Exception {
5344
Saml2Settings settings = new SettingsBuilder().fromFile("config/config.min.properties").build();
5445

55-
String logoutRequestString = Util.getFileAsString("data/logout_requests/logout_request.xml");
56-
LogoutRequest logoutRequest = PowerMockito.spy(new LogoutRequest(settings));
57-
PowerMockito.when(logoutRequest, method(LogoutRequest.class, "getLogoutRequestXml")).withNoArguments().thenReturn(
58-
logoutRequestString);
46+
final String logoutRequestString = Util.getFileAsString("data/logout_requests/logout_request.xml");
47+
LogoutRequest logoutRequest = new LogoutRequest(settings) {
48+
@Override
49+
protected String getLogoutRequestXml() {
50+
return logoutRequestString;
51+
}
52+
};
5953

6054
String expectedLogoutRequestStringBase64 = Util.getFileAsString("data/logout_requests/logout_request_deflated.xml.base64");
6155
String logoutRequestStringBase64 = logoutRequest.getEncodedLogoutRequest();
@@ -701,4 +695,4 @@ public void testGetError() throws URISyntaxException, IOException, XMLEntityExce
701695
logoutRequest.isValid();
702696
assertNull(logoutRequest.getError());
703697
}
704-
}
698+
}

core/src/test/java/com/onelogin/saml2/test/logout/LogoutResponseTest.java

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,14 @@
99
import static org.junit.Assert.assertTrue;
1010
import static org.mockito.Mockito.mock;
1111
import static org.mockito.Mockito.when;
12-
import static org.powermock.api.support.membermodification.MemberMatcher.method;
1312

1413
import java.io.IOException;
1514
import java.net.URISyntaxException;
1615

1716
import javax.servlet.http.HttpServletRequest;
1817
import javax.xml.xpath.XPathExpressionException;
1918

20-
import org.junit.Rule;
2119
import org.junit.Test;
22-
import org.powermock.api.mockito.PowerMockito;
23-
import org.powermock.core.classloader.annotations.PrepareForTest;
24-
import org.powermock.modules.junit4.rule.PowerMockRule;
2520

2621
import com.onelogin.saml2.exception.XMLEntityException;
2722
import com.onelogin.saml2.logout.LogoutResponse;
@@ -30,12 +25,8 @@
3025
import com.onelogin.saml2.util.Util;
3126
import com.onelogin.saml2.util.Constants;
3227

33-
@PrepareForTest({LogoutResponse.class})
3428
public class LogoutResponseTest {
3529

36-
@Rule
37-
public PowerMockRule rule = new PowerMockRule();
38-
3930
/**
4031
* Tests the constructor, the build and the getEncodedLogoutResponse method of LogoutResponse
4132
*
@@ -47,14 +38,17 @@ public class LogoutResponseTest {
4738
public void testGetEncodedLogoutResponseSimulated() throws Exception {
4839
Saml2Settings settings = new SettingsBuilder().fromFile("config/config.min.properties").build();
4940

50-
String logoutResponseString = Util.getFileAsString("data/logout_responses/logout_response.xml");
41+
final String logoutResponseString = Util.getFileAsString("data/logout_responses/logout_response.xml");
5142

5243
HttpServletRequest request = mock(HttpServletRequest.class);
5344
when(request.getRequestURL()).thenReturn(new StringBuffer( "/"));
5445

55-
LogoutResponse logoutResponseBuilder = PowerMockito.spy(new LogoutResponse(settings, request));
56-
PowerMockito.when(logoutResponseBuilder, method(LogoutResponse.class, "getLogoutResponseXml")).withNoArguments().thenReturn(
57-
logoutResponseString);
46+
LogoutResponse logoutResponseBuilder = new LogoutResponse(settings, request) {
47+
@Override
48+
protected String getLogoutResponseXml() {
49+
return logoutResponseString;
50+
}
51+
};
5852

5953
logoutResponseBuilder.build();
6054

@@ -63,9 +57,12 @@ public void testGetEncodedLogoutResponseSimulated() throws Exception {
6357

6458
assertEquals(logoutResponseStringBase64, expectedLogoutResponseStringBase64);
6559

66-
LogoutResponse logoutResponse = PowerMockito.spy(new LogoutResponse(settings, request));
67-
PowerMockito.when(logoutResponse, method(LogoutResponse.class, "getLogoutResponseXml")).withNoArguments().thenReturn(
68-
logoutResponseString);
60+
LogoutResponse logoutResponse = new LogoutResponse(settings, request) {
61+
@Override
62+
protected String getLogoutResponseXml() {
63+
return logoutResponseString;
64+
}
65+
};
6966
logoutResponseStringBase64 = logoutResponse.getEncodedLogoutResponse();
7067
assertEquals(logoutResponseStringBase64, expectedLogoutResponseStringBase64);
7168
}
@@ -501,4 +498,4 @@ public void testGetError() throws URISyntaxException, IOException, XMLEntityExce
501498
logoutResponse.isValid();
502499
assertNull(logoutResponse.getError());
503500
}
504-
}
501+
}

core/src/test/java/com/onelogin/saml2/test/model/ContactTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.onelogin.saml2.test.model;
22

33
import org.junit.Test;
4-
import org.powermock.core.classloader.annotations.PrepareForTest;
54

65
import static org.junit.Assert.assertEquals;
76

@@ -10,7 +9,6 @@
109
/**
1110
* Tests the com.onelogin.saml2.model.Contact class
1211
*/
13-
@PrepareForTest({Contact.class})
1412
public class ContactTest {
1513

1614
/**

0 commit comments

Comments
 (0)