Skip to content

Commit 9e0d9ba

Browse files
committed
Implemented Server MeterValues feature.
1 parent 59c6177 commit 9e0d9ba

File tree

5 files changed

+43
-16
lines changed

5 files changed

+43
-16
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,12 @@ public HeartbeatConfirmation handleHeartbeatRequest(int sessionIndex, HeartbeatR
9797
confirmation.setCurrentTime(Calendar.getInstance());
9898
return confirmation;
9999
}
100+
101+
@Override
102+
public MeterValuesConfirmation handleMeterValuesRequest(int sessionIndex, MeterValuesRequest request) {
103+
receivedRequest = request;
104+
return new MeterValuesConfirmation();
105+
}
100106
}));
101107
server.open("localhost", 8887, new ServerEvents() {
102108
@Override
@@ -193,4 +199,8 @@ public boolean hasReceivedGetConfigurationConfirmation() {
193199
public boolean hasHandledHeartbeat() {
194200
return receivedRequest instanceof HeartbeatRequest;
195201
}
202+
203+
public boolean hasHandledMeterValuesRequest() {
204+
return receivedRequest instanceof MeterValuesRequest;
205+
}
196206
}

ocpp-v1_6-test/src/test/groovy/eu/chargetime/ocpp/test/core/MeterValues.groovy renamed to ocpp-v1_6-test/src/test/groovy/eu/chargetime/ocpp/test/core/MeterValuesSpec.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 MeterValues extends Specification
9+
class MeterValuesSpec 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() {
@@ -32,12 +32,9 @@ class MeterValues extends Specification
3232

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

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

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
@@ -30,6 +30,7 @@ public interface ServerCoreEventHandler {
3030
AuthorizeConfirmation handleAuthorizeRequest(int sessionIndex, AuthorizeRequest request);
3131
BootNotificationConfirmation handleBootNotificationRequest(int sessionIndex, BootNotificationRequest request);
3232
DataTransferConfirmation handleDataTransferRequest(int sessionIndex, DataTransferRequest request);
33-
3433
HeartbeatConfirmation handleHeartbeatRequest(int sessionIndex, HeartbeatRequest request);
34+
35+
MeterValuesConfirmation handleMeterValuesRequest(int sessionIndex, MeterValuesRequest request);
3536
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,7 @@ of this software and associated documentation files (the "Software"), to deal
2727
import eu.chargetime.ocpp.feature.*;
2828
import eu.chargetime.ocpp.model.Confirmation;
2929
import eu.chargetime.ocpp.model.Request;
30-
import eu.chargetime.ocpp.model.core.AuthorizeRequest;
31-
import eu.chargetime.ocpp.model.core.BootNotificationRequest;
32-
import eu.chargetime.ocpp.model.core.DataTransferRequest;
33-
import eu.chargetime.ocpp.model.core.HeartbeatRequest;
30+
import eu.chargetime.ocpp.model.core.*;
3431

3532
import java.util.HashSet;
3633

@@ -51,6 +48,7 @@ public ServerCoreProfile(ServerCoreEventHandler handler) {
5148
features.add(new DataTransferFeature(this));
5249
features.add(new GetConfigurationFeature(this));
5350
features.add(new HeartbeatFeature(this));
51+
features.add(new MeterValuesFeature(this));
5452
}
5553

5654
@Override
@@ -70,6 +68,8 @@ public Confirmation handleRequest(int sessionIndex, Request request) {
7068
result = handler.handleDataTransferRequest(sessionIndex, (DataTransferRequest) request);
7169
} else if (request instanceof HeartbeatRequest) {
7270
result = handler.handleHeartbeatRequest(sessionIndex, (HeartbeatRequest) request);
71+
} else if (request instanceof MeterValuesRequest) {
72+
result = handler.handleMeterValuesRequest(sessionIndex, (MeterValuesRequest) request);
7373
}
7474

7575
return result;

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

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
import eu.chargetime.ocpp.feature.*;
44
import eu.chargetime.ocpp.feature.profile.ServerCoreEventHandler;
55
import eu.chargetime.ocpp.feature.profile.ServerCoreProfile;
6-
import eu.chargetime.ocpp.model.core.AuthorizeRequest;
7-
import eu.chargetime.ocpp.model.core.BootNotificationRequest;
8-
import eu.chargetime.ocpp.model.core.DataTransferRequest;
9-
import eu.chargetime.ocpp.model.core.HeartbeatRequest;
6+
import eu.chargetime.ocpp.model.core.*;
107
import org.junit.Before;
118
import org.junit.Test;
129
import org.mockito.Mock;
@@ -178,6 +175,28 @@ public void handleRequest_aHeartbeatRequest_callsHandleHeartbeatRequest() {
178175
verify(handler, times(1)).handleHeartbeatRequest(eq(sessionId), eq(request));
179176
}
180177

178+
@Test
179+
public void getFeatureList_containsMeterValuesFeature() {
180+
// When
181+
Feature[] features = core.getFeatureList();
182+
183+
// Then
184+
assertThat(findFeature(features, "MeterValues"), is(instanceOf(MeterValuesFeature.class)));
185+
}
186+
187+
@Test
188+
public void handleRequest_aMeterValuesRequest_callsHandleMeterValuesRequest() {
189+
// Given
190+
MeterValuesRequest request = new MeterValuesRequest();
191+
int sessionId = 42;
192+
193+
// When
194+
core.handleRequest(sessionId, request);
195+
196+
// Then
197+
verify(handler, times(1)).handleMeterValuesRequest(eq(sessionId), eq(request));
198+
}
199+
181200
private Feature findFeature(Feature[] features, String action) {
182201
Feature output = null;
183202
for (Feature feature : features) {

0 commit comments

Comments
 (0)