Skip to content

Commit fedca97

Browse files
authored
Merge pull request ChargeTimeEU#152 from jmluy/master
Allow optional IdTagInfo in SendLocalList for deleting entries
2 parents 05e44b6 + 8207de7 commit fedca97

File tree

3 files changed

+53
-1
lines changed

3 files changed

+53
-1
lines changed

ocpp-v1_6/src/main/java/eu/chargetime/ocpp/model/localauthlist/AuthorizationData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public void setIdTagInfo(IdTagInfo idTagInfo) {
8888

8989
@Override
9090
public boolean validate() {
91-
return ModelUtil.validate(idTag, 20) && idTagInfo.validate();
91+
return ModelUtil.validate(idTag, 20) && (idTagInfo == null || idTagInfo.validate());
9292
}
9393

9494
@Override

ocpp-v1_6/src/main/java/eu/chargetime/ocpp/model/localauthlist/SendLocalListRequest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@ public boolean validate() {
127127
if (localAuthorizationList != null) {
128128
for (AuthorizationData data : localAuthorizationList) {
129129
valid &= data.validate();
130+
131+
if (updateType == UpdateType.Full) {
132+
valid &= data.getIdTagInfo() != null;
133+
}
130134
}
131135
}
132136

ocpp-v1_6/src/test/java/eu/chargetime/ocpp/model/localauthlist/test/SendLocalListRequestTest.java

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,13 @@
44
import static org.hamcrest.CoreMatchers.equalTo;
55
import static org.hamcrest.CoreMatchers.instanceOf;
66
import static org.junit.Assert.assertThat;
7+
import static org.mockito.Mockito.times;
8+
import static org.mockito.Mockito.verify;
9+
import static org.mockito.Mockito.when;
710

811
import eu.chargetime.ocpp.PropertyConstraintException;
12+
import eu.chargetime.ocpp.model.core.AuthorizationStatus;
13+
import eu.chargetime.ocpp.model.core.IdTagInfo;
914
import eu.chargetime.ocpp.model.localauthlist.AuthorizationData;
1015
import eu.chargetime.ocpp.model.localauthlist.SendLocalListRequest;
1116
import eu.chargetime.ocpp.model.localauthlist.UpdateType;
@@ -107,4 +112,47 @@ public void validate_updateTypeIsNotSet_isNotValid() {
107112
// Then
108113
assertThat(request.validate(), equalTo(false));
109114
}
115+
116+
@Test
117+
public void validate_updateTypeFullWithTagInfo_isValid() {
118+
// When
119+
request.setListVersion(42);
120+
request.setUpdateType(UpdateType.Full);
121+
request.setLocalAuthorizationList(aList(data));
122+
123+
when(data.validate()).thenReturn(true);
124+
when(data.getIdTagInfo()).thenReturn(new IdTagInfo(AuthorizationStatus.Accepted));
125+
126+
// Then
127+
assertThat(request.validate(), equalTo(true));
128+
verify(data, times(1)).getIdTagInfo();
129+
verify(data, times(1)).validate();
130+
}
131+
132+
@Test
133+
public void validate_updateTypeFullEmptyTagInfo_isNotValid() {
134+
// When
135+
request.setListVersion(42);
136+
request.setUpdateType(UpdateType.Full);
137+
request.setLocalAuthorizationList(aList(data));
138+
139+
when(data.validate()).thenReturn(true);
140+
when(data.getIdTagInfo()).thenReturn(null);
141+
142+
// Then
143+
assertThat(request.validate(), equalTo(false));
144+
}
145+
146+
@Test
147+
public void validate_updateTypeDifferentialEmptyIdTagInfo_isValid() {
148+
// When
149+
request.setListVersion(42);
150+
request.setUpdateType(UpdateType.Differential);
151+
request.setLocalAuthorizationList(aList(data));
152+
153+
when(data.validate()).thenReturn(true);
154+
155+
// Then
156+
assertThat(request.validate(), equalTo(true));
157+
}
110158
}

0 commit comments

Comments
 (0)