Skip to content

Commit 275ebbd

Browse files
committed
Fixed SOAP sub fault. Tried to stabilize the integration tests.
1 parent e0e1761 commit 275ebbd

File tree

6 files changed

+17
-6
lines changed

6 files changed

+17
-6
lines changed

ocpp-v1_6-test/src/main/java/eu/chargetime/ocpp/test/FakeCentralSystem.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ public boolean hasReceivedUnlockConnectorConfirmation(String status) {
261261
return result;
262262
}
263263

264-
public void isRiggedToFailOnNextRequest() {
264+
public void rigNextRequestToFail() {
265265
dummyHandlers.setRiggedToFail(true);
266266
}
267267

ocpp-v1_6-test/src/test/groovy/eu/chargetime/ocpp/test/core/json/JSONAuthorizeSpec.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class JSONAuthorizeSpec extends Specification {
5555
def conditions = new PollingConditions(timeout: 1)
5656

5757
given:
58-
centralSystem.isRiggedToFailOnNextRequest()
58+
centralSystem.rigNextRequestToFail()
5959

6060
when:
6161
chargePoint.sendAuthorizeRequest("")

ocpp-v1_6-test/src/test/groovy/eu/chargetime/ocpp/test/core/soap/SOAPAuthorizeSpec.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class SOAPAuthorizeSpec extends Specification
5656
def conditions = new PollingConditions(timeout: 1)
5757

5858
given:
59-
centralSystem.isRiggedToFailOnNextRequest()
59+
centralSystem.rigNextRequestToFail()
6060

6161
when:
6262
chargePoint.sendAuthorizeRequest("")

ocpp-v1_6/src/main/java/eu/chargetime/ocpp/SOAPClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ private void openWS() {
121121
try {
122122
soapMessage = transmitter.relay(message).get();
123123
} catch (InterruptedException e) {
124-
e.printStackTrace();
124+
//e.printStackTrace();
125125
} catch (ExecutionException e) {
126126
e.printStackTrace();
127127
}

ocpp-v1_6/src/main/java/eu/chargetime/ocpp/SOAPCommunicator.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ of this software and associated documentation files (the "Software"), to deal
3434
import javax.xml.bind.JAXBException;
3535
import javax.xml.bind.Marshaller;
3636
import javax.xml.bind.Unmarshaller;
37+
import javax.xml.namespace.QName;
3738
import javax.xml.parsers.DocumentBuilderFactory;
3839
import javax.xml.parsers.ParserConfigurationException;
3940
import javax.xml.soap.*;
@@ -101,6 +102,15 @@ protected Object makeCall(String uniqueId, String action, Object payload) {
101102
return createMessage(uniqueId, action, (Document) payload, false);
102103
}
103104

105+
private QName blameSomeone(String errorCode) {
106+
QName result = SOAPConstants.SOAP_RECEIVER_FAULT;
107+
if ("SecurityError".equals(errorCode) || "IdentityMismatch".equals(errorCode) || "ProtocolError".equals(errorCode)) {
108+
return SOAPConstants.SOAP_SENDER_FAULT;
109+
}
110+
111+
return result;
112+
}
113+
104114
@Override
105115
protected Object makeCallError(String uniqueId, String action, String errorCode, String errorDescription) {
106116
SOAPFault fault = null;
@@ -110,9 +120,11 @@ protected Object makeCallError(String uniqueId, String action, String errorCode,
110120
createMessageHeader(uniqueId, String.format("%sResponse", action), true, message);
111121

112122
SOAPFault soapFault = message.getSOAPBody().addFault();
113-
soapFault.setFaultCode(errorCode);
123+
soapFault.setFaultCode(blameSomeone(errorCode));
114124
soapFault.setFaultString(errorDescription);
115125

126+
soapFault.appendFaultSubcode(new QName("urn://Ocpp/Cs/2015/10/", errorCode));
127+
116128
} catch (SOAPException e) {
117129
e.printStackTrace();
118130
}

ocpp-v1_6/src/main/java/eu/chargetime/ocpp/WebServiceReceiver.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ void sendRequest(SOAPMessage message) throws NotConnectedException {
8484
try {
8585
events.receivedMessage(soapConnection.call(message, url));
8686
} catch (SOAPException e) {
87-
e.printStackTrace();
8887
disconnect();
8988
}
9089
}).start();

0 commit comments

Comments
 (0)