Skip to content

Commit 5eb694b

Browse files
committed
Implemented Server DataTransfer feature.
1 parent 82f2d4c commit 5eb694b

File tree

6 files changed

+60
-13
lines changed

6 files changed

+60
-13
lines changed

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ public BootNotificationConfirmation handleBootNotificationRequest(int sessionInd
8181
confirmation.setStatus(RegistrationStatus.Accepted);
8282
return confirmation;
8383
}
84+
85+
@Override
86+
public DataTransferConfirmation handleDataTransferRequest(int sessionIndex, DataTransferRequest request) {
87+
receivedRequest = request;
88+
DataTransferConfirmation confirmation = new DataTransferConfirmation();
89+
confirmation.setStatus(DataTransferStatus.Accepted);
90+
return confirmation;
91+
}
8492
}));
8593
server.open("localhost", 8887, new ServerEvents() {
8694
@Override
@@ -147,4 +155,20 @@ public void sendClearCacheRequest() throws Exception {
147155
public boolean hasReceivedClearCacheConfirmation() {
148156
return receivedConfirmation instanceof ClearCacheConfirmation;
149157
}
158+
159+
public void sendDataTransferRequest(String vendorId, String messageId, String data) throws Exception {
160+
DataTransferRequest request = new DataTransferRequest();
161+
request.setVendorId(vendorId);
162+
request.setMessageId(messageId);
163+
request.setData(data);
164+
server.send(sessionIndex, request).whenComplete((confirmation, throwable) -> receivedConfirmation = confirmation);
165+
}
166+
167+
public boolean hasReceivedDataTransferConfirmation() {
168+
return receivedConfirmation instanceof DataTransferConfirmation;
169+
}
170+
171+
public boolean hasHandledDataTransferRequest() {
172+
return receivedRequest instanceof DataTransferRequest;
173+
}
150174
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@ public ClearCacheConfirmation handleClearCacheRequest(ClearCacheRequest request)
7878
@Override
7979
public DataTransferConfirmation handleDataTransferRequest(DataTransferRequest request) {
8080
receivedRequest = request;
81-
return new DataTransferConfirmation();
81+
DataTransferConfirmation confirmation = new DataTransferConfirmation();
82+
confirmation.setStatus(DataTransferStatus.Accepted);
83+
return confirmation;
8284
}
8385

8486
@Override

ocpp-v1_6-test/src/test/groovy/eu/chargetime/ocpp/test/core/DataTransfer.groovy renamed to ocpp-v1_6-test/src/test/groovy/eu/chargetime/ocpp/test/core/DataTransferSpec.groovy

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package eu.chargetime.ocpp.test.core
22

3+
import eu.chargetime.ocpp.test.FakeCentralSystem
34
import eu.chargetime.ocpp.test.FakeChargePoint
4-
import eu.chargetime.ocpp.test.OldFakeCentralSystem
55
import spock.lang.Shared
66
import spock.lang.Specification
77
import spock.util.concurrent.PollingConditions
88

9-
class DataTransfer extends Specification
9+
class DataTransferSpec extends Specification
1010
{
1111
@Shared
12-
OldFakeCentralSystem centralSystem = OldFakeCentralSystem.getInstance();
12+
FakeCentralSystem centralSystem = FakeCentralSystem.getInstance();
1313
@Shared FakeChargePoint chargePoint = new FakeChargePoint();
1414

1515
def setupSpec() {
@@ -46,12 +46,9 @@ class DataTransfer extends Specification
4646

4747
then:
4848
conditions.eventually {
49-
assert centralSystem.hasReceivedDataTransferRequest();
49+
assert centralSystem.hasHandledDataTransferRequest();
5050
}
5151

52-
when:
53-
centralSystem.sendDataTransferConfirmation("Accepted");
54-
5552
then:
5653
conditions.eventually {
5754
assert chargePoint.hasReceivedDataTransferConfirmation("Accepted");

ocpp-v1_6/src/main/java/eu/chargetime/ocpp/feature/profile/ServerCoreEventHandler.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,11 @@ of this software and associated documentation files (the "Software"), to deal
2424
SOFTWARE.
2525
*/
2626

27-
import eu.chargetime.ocpp.model.core.AuthorizeConfirmation;
28-
import eu.chargetime.ocpp.model.core.AuthorizeRequest;
29-
import eu.chargetime.ocpp.model.core.BootNotificationConfirmation;
30-
import eu.chargetime.ocpp.model.core.BootNotificationRequest;
27+
import eu.chargetime.ocpp.model.core.*;
3128

3229
public interface ServerCoreEventHandler {
3330
AuthorizeConfirmation handleAuthorizeRequest(int sessionIndex, AuthorizeRequest request);
34-
3531
BootNotificationConfirmation handleBootNotificationRequest(int sessionIndex, BootNotificationRequest request);
32+
33+
DataTransferConfirmation handleDataTransferRequest(int sessionIndex, DataTransferRequest request);
3634
}

ocpp-v1_6/src/main/java/eu/chargetime/ocpp/feature/profile/ServerCoreProfile.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ of this software and associated documentation files (the "Software"), to deal
2929
import eu.chargetime.ocpp.model.Request;
3030
import eu.chargetime.ocpp.model.core.AuthorizeRequest;
3131
import eu.chargetime.ocpp.model.core.BootNotificationRequest;
32+
import eu.chargetime.ocpp.model.core.DataTransferRequest;
3233

3334
import java.util.HashSet;
3435

@@ -46,6 +47,7 @@ public ServerCoreProfile(ServerCoreEventHandler handler) {
4647
features.add(new ChangeAvailabilityFeature(this));
4748
features.add(new ChangeConfigurationFeature(this));
4849
features.add(new ClearCacheFeature(this));
50+
features.add(new DataTransferFeature(this));
4951
}
5052

5153
@Override
@@ -61,6 +63,8 @@ public Confirmation handleRequest(int sessionIndex, Request request) {
6163
result = handler.handleAuthorizeRequest(sessionIndex, (AuthorizeRequest) request);
6264
} else if (request instanceof BootNotificationRequest) {
6365
result = handler.handleBootNotificationRequest(sessionIndex, (BootNotificationRequest) request);
66+
} else if (request instanceof DataTransferRequest) {
67+
result = handler.handleDataTransferRequest(sessionIndex, (DataTransferRequest) request);
6468
}
6569

6670
return result;

ocpp-v1_6/src/test/java/eu/chargetime/ocpp/feature/profile/test/ServerCoreProfileTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import eu.chargetime.ocpp.feature.profile.ServerCoreProfile;
66
import eu.chargetime.ocpp.model.core.AuthorizeRequest;
77
import eu.chargetime.ocpp.model.core.BootNotificationRequest;
8+
import eu.chargetime.ocpp.model.core.DataTransferRequest;
89
import org.junit.Before;
910
import org.junit.Test;
1011
import org.mockito.Mock;
@@ -123,6 +124,27 @@ public void getFeatureList_containsClearCacheFeature() {
123124
assertThat(findFeature(features, "ClearCache"), is(instanceOf(ClearCacheFeature.class)));
124125
}
125126

127+
@Test
128+
public void getFeatureList_containsDataTransferFeature() {
129+
// When
130+
Feature[] features = core.getFeatureList();
131+
132+
// Then
133+
assertThat(findFeature(features, "DataTransfer"), is(instanceOf(DataTransferFeature.class)));
134+
}
135+
136+
@Test
137+
public void handleRequest_aDataTransferRequest_callsHandleDataTransferRequest() {
138+
// Given
139+
DataTransferRequest request = new DataTransferRequest();
140+
int sessionId = 42;
141+
142+
// When
143+
core.handleRequest(sessionId, request);
144+
145+
// Then
146+
verify(handler, times(1)).handleDataTransferRequest(eq(sessionId), eq(request));
147+
}
126148

127149
private Feature findFeature(Feature[] features, String action) {
128150
Feature output = null;

0 commit comments

Comments
 (0)