Skip to content

Commit 36ccbc5

Browse files
committed
For story TG-1: Implemented Server StartTransaction feature.
1 parent 177a4a7 commit 36ccbc5

File tree

5 files changed

+45
-8
lines changed

5 files changed

+45
-8
lines changed

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,17 @@ public MeterValuesConfirmation handleMeterValuesRequest(int sessionIndex, MeterV
103103
receivedRequest = request;
104104
return new MeterValuesConfirmation();
105105
}
106+
107+
@Override
108+
public StartTransactionConfirmation handleStartTransactionRequest(int sessionIndex, StartTransactionRequest request) {
109+
receivedRequest = request;
110+
IdTagInfo tagInfo = new IdTagInfo();
111+
tagInfo.setStatus(AuthorizationStatus.Accepted);
112+
113+
StartTransactionConfirmation confirmation = new StartTransactionConfirmation();
114+
confirmation.setIdTagInfo(tagInfo);
115+
return confirmation;
116+
}
106117
}));
107118
server.open("localhost", 8887, new ServerEvents() {
108119
@Override
@@ -246,4 +257,7 @@ public boolean hasReceivedResetConfirmation(String status) {
246257
return result;
247258
}
248259

260+
public boolean hasHandledStartTransactionRequest() {
261+
return receivedRequest instanceof StartTransactionRequest;
262+
}
249263
}

ocpp-v1_6-test/src/test/groovy/eu/chargetime/ocpp/test/core/StartTransaction.groovy renamed to ocpp-v1_6-test/src/test/groovy/eu/chargetime/ocpp/test/core/StartTransactionSpec.groovy

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
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 StartTransaction extends Specification {
9+
class StartTransactionSpec extends Specification {
1010
@Shared
11-
OldFakeCentralSystem centralSystem = OldFakeCentralSystem.getInstance();
11+
FakeCentralSystem centralSystem = FakeCentralSystem.getInstance();
1212
@Shared
1313
FakeChargePoint chargePoint = new FakeChargePoint();
1414

@@ -32,12 +32,9 @@ class StartTransaction extends Specification {
3232

3333
then:
3434
conditions.eventually {
35-
assert centralSystem.hasReceivedStartTransactionRequest();
35+
assert centralSystem.hasHandledStartTransactionRequest();
3636
}
3737

38-
when:
39-
centralSystem.sendStartTransactionConfirmation();
40-
4138
then:
4239
conditions.eventually {
4340
assert chargePoint.hasReceivedStartTransactionConfirmation();

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public interface ServerCoreEventHandler {
3131
BootNotificationConfirmation handleBootNotificationRequest(int sessionIndex, BootNotificationRequest request);
3232
DataTransferConfirmation handleDataTransferRequest(int sessionIndex, DataTransferRequest request);
3333
HeartbeatConfirmation handleHeartbeatRequest(int sessionIndex, HeartbeatRequest request);
34-
3534
MeterValuesConfirmation handleMeterValuesRequest(int sessionIndex, MeterValuesRequest request);
35+
36+
StartTransactionConfirmation handleStartTransactionRequest(int sessionIndex, StartTransactionRequest request);
3637
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public ServerCoreProfile(ServerCoreEventHandler handler) {
5252
features.add(new RemoteStartTransactionFeature(this));
5353
features.add(new RemoteStopTransactionFeature(this));
5454
features.add(new ResetFeature(this));
55+
features.add(new StartTransactionFeature(this));
5556
}
5657

5758
@Override
@@ -73,6 +74,8 @@ public Confirmation handleRequest(int sessionIndex, Request request) {
7374
result = handler.handleHeartbeatRequest(sessionIndex, (HeartbeatRequest) request);
7475
} else if (request instanceof MeterValuesRequest) {
7576
result = handler.handleMeterValuesRequest(sessionIndex, (MeterValuesRequest) request);
77+
} else if (request instanceof StartTransactionRequest) {
78+
result = handler.handleStartTransactionRequest(sessionIndex, (StartTransactionRequest) request);
7679
}
7780

7881
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
@@ -224,6 +224,28 @@ public void getFeatureList_containsResetFeature() {
224224
assertThat(findFeature(features, "Reset"), is(instanceOf(ResetFeature.class)));
225225
}
226226

227+
@Test
228+
public void getFeatureList_containsStartTransactionFeature() {
229+
// When
230+
Feature[] features = core.getFeatureList();
231+
232+
// Then
233+
assertThat(findFeature(features, "StartTransaction"), is(instanceOf(StartTransactionFeature.class)));
234+
}
235+
236+
@Test
237+
public void handleRequest_aStartTransactionRequest_callsHandleStartTransactionRequest() {
238+
// Given
239+
StartTransactionRequest request = new StartTransactionRequest();
240+
int sessionId = 42;
241+
242+
// When
243+
core.handleRequest(sessionId, request);
244+
245+
// Then
246+
verify(handler, times(1)).handleStartTransactionRequest(eq(sessionId), eq(request));
247+
}
248+
227249
private Feature findFeature(Feature[] features, String action) {
228250
Feature output = null;
229251
for (Feature feature : features) {

0 commit comments

Comments
 (0)