Skip to content

Commit fecac09

Browse files
authored
Add StatusNotification test cases (#377)
1 parent 942fb88 commit fecac09

1 file changed

Lines changed: 146 additions & 0 deletions

File tree

tests/ChargingSessions.cpp

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1082,5 +1082,151 @@ TEST_CASE( "Charging sessions" ) {
10821082
REQUIRE( checkProcessedStopTx );
10831083
}
10841084

1085+
SECTION("StatusNotification") {
1086+
1087+
mocpp_deinitialize();
1088+
1089+
mocpp_initialize(loopback, ChargerCredentials());
1090+
1091+
bool checkProcessed = false;
1092+
const char *checkStatus = "";
1093+
1094+
getOcppContext()->getOperationRegistry().setOnRequest("StatusNotification",
1095+
[&checkProcessed, &checkStatus] (JsonObject payload) {
1096+
//process req
1097+
if (payload["connectorId"].as<int>() == 1) {
1098+
checkProcessed = true;
1099+
REQUIRE( !strcmp(payload["status"] | "_Undefined", checkStatus) );
1100+
}
1101+
});
1102+
1103+
checkStatus = "Available";
1104+
loop();
1105+
REQUIRE( checkProcessed );
1106+
1107+
checkStatus = "Preparing";
1108+
checkProcessed = false;
1109+
setConnectorPluggedInput([] () {return true;});
1110+
loop();
1111+
REQUIRE( checkProcessed );
1112+
1113+
checkStatus = "Available";
1114+
checkProcessed = false;
1115+
setConnectorPluggedInput([] () {return false;});
1116+
loop();
1117+
REQUIRE( checkProcessed );
1118+
1119+
checkStatus = "Preparing";
1120+
checkProcessed = false;
1121+
beginTransaction("mIdTag");
1122+
loop();
1123+
REQUIRE( checkProcessed );
1124+
1125+
checkStatus = "Available";
1126+
checkProcessed = false;
1127+
endTransaction("mIdTag");
1128+
loop();
1129+
REQUIRE( checkProcessed );
1130+
1131+
checkStatus = "Preparing";
1132+
beginTransaction("mIdTag");
1133+
loop();
1134+
checkProcessed = false;
1135+
1136+
checkStatus = "Charging";
1137+
checkProcessed = false;
1138+
setConnectorPluggedInput([] () {return true;});
1139+
loop();
1140+
REQUIRE( checkProcessed );
1141+
1142+
checkStatus = "SuspendedEV";
1143+
checkProcessed = false;
1144+
setEvReadyInput([] () {return false;});
1145+
loop();
1146+
REQUIRE( checkProcessed );
1147+
1148+
checkStatus = "SuspendedEVSE";
1149+
checkProcessed = false;
1150+
setEvReadyInput([] () {return true;});
1151+
setEvseReadyInput([] () {return false;});
1152+
loop();
1153+
REQUIRE( checkProcessed );
1154+
1155+
checkStatus = "Charging";
1156+
checkProcessed = false;
1157+
setEvReadyInput([] () {return true;});
1158+
setEvseReadyInput([] () {return true;});
1159+
loop();
1160+
REQUIRE( checkProcessed );
1161+
1162+
checkStatus = "Finishing";
1163+
checkProcessed = false;
1164+
endTransaction();
1165+
loop();
1166+
REQUIRE( checkProcessed );
1167+
1168+
checkStatus = "Available";
1169+
checkProcessed = false;
1170+
setConnectorPluggedInput([] () {return false;});
1171+
loop();
1172+
REQUIRE( checkProcessed );
1173+
1174+
checkStatus = "Available";
1175+
const char *checkStatus2 = checkStatus;
1176+
checkProcessed = false;
1177+
mocpp_deinitialize();
1178+
mocpp_initialize(loopback, ChargerCredentials("test-runner1234"));
1179+
getOcppContext()->getOperationRegistry().setOnRequest("StatusNotification",
1180+
[&checkProcessed, &checkStatus, &checkStatus2] (JsonObject payload) {
1181+
//process req
1182+
if (payload["connectorId"].as<int>() == 1) {
1183+
checkProcessed = true;
1184+
REQUIRE( (!strcmp(payload["status"] | "_Undefined", checkStatus) || !strcmp(payload["status"] | "_Undefined", checkStatus2)) );
1185+
}
1186+
});
1187+
loop();
1188+
REQUIRE( checkProcessed );
1189+
1190+
checkStatus = "Charging";
1191+
checkStatus2 = "Preparing";
1192+
checkProcessed = false;
1193+
beginTransaction("mIdTag");
1194+
loop();
1195+
REQUIRE( checkProcessed );
1196+
1197+
checkStatus = "Charging";
1198+
checkStatus2 = checkStatus;
1199+
checkProcessed = false;
1200+
mocpp_deinitialize();
1201+
mocpp_initialize(loopback, ChargerCredentials("test-runner1234"));
1202+
getOcppContext()->getOperationRegistry().setOnRequest("StatusNotification",
1203+
[&checkProcessed, &checkStatus] (JsonObject payload) {
1204+
//process req
1205+
if (payload["connectorId"].as<int>() == 1) {
1206+
checkProcessed = true;
1207+
REQUIRE( !strcmp(payload["status"] | "_Undefined", checkStatus) );
1208+
}
1209+
});
1210+
loop();
1211+
REQUIRE( checkProcessed );
1212+
1213+
checkStatus = "Available";
1214+
checkStatus2 = checkStatus;
1215+
checkProcessed = false;
1216+
endTransaction();
1217+
mocpp_deinitialize();
1218+
mocpp_initialize(loopback, ChargerCredentials("test-runner1234"));
1219+
getOcppContext()->getOperationRegistry().setOnRequest("StatusNotification",
1220+
[&checkProcessed, &checkStatus] (JsonObject payload) {
1221+
//process req
1222+
if (payload["connectorId"].as<int>() == 1) {
1223+
checkProcessed = true;
1224+
REQUIRE( !strcmp(payload["status"] | "_Undefined", checkStatus) );
1225+
}
1226+
});
1227+
loop();
1228+
REQUIRE( checkProcessed );
1229+
}
1230+
10851231
mocpp_deinitialize();
10861232
}

0 commit comments

Comments
 (0)