use of com.amazonaws.mobile.client.internal.oauth2.AuthorizeResponse in project EVSUPERVISION by EnergyTIC.
the class ApplicationTest method testOcpp12.
@Test
public void testOcpp12() {
ocpp.cs._2010._08.CentralSystemService client = getForOcpp12(path);
BootNotificationResponse boot = client.bootNotification(new BootNotificationRequest().withChargePointVendor(getRandomString()).withChargePointModel(getRandomString()), REGISTERED_CHARGE_BOX_ID);
Assertions.assertNotNull(boot);
Assertions.assertEquals(RegistrationStatus.ACCEPTED, boot.getStatus());
AuthorizeResponse auth = client.authorize(new AuthorizeRequest().withIdTag(REGISTERED_OCPP_TAG), REGISTERED_CHARGE_BOX_ID);
Assertions.assertNotNull(auth);
Assertions.assertEquals(AuthorizationStatus.ACCEPTED, auth.getIdTagInfo().getStatus());
}
use of com.amazonaws.mobile.client.internal.oauth2.AuthorizeResponse in project EVSUPERVISION by EnergyTIC.
the class OperationalTestSoapOCPP16 method testRegisteredIdTag.
@Test
public void testRegisteredIdTag() {
CentralSystemService client = getForOcpp16(path);
AuthorizeResponse auth = client.authorize(new AuthorizeRequest().withIdTag(REGISTERED_OCPP_TAG), REGISTERED_CHARGE_BOX_ID);
Assertions.assertNotNull(auth);
Assertions.assertEquals(AuthorizationStatus.ACCEPTED, auth.getIdTagInfo().getStatus());
}
use of com.amazonaws.mobile.client.internal.oauth2.AuthorizeResponse in project EVSUPERVISION by EnergyTIC.
the class OperationalTestSoapOCPP16 method testBody.
private void testBody(List<MeterValue> meterValues, List<MeterValue> transactionData) {
final int usedConnectorID = 1;
CentralSystemService client = getForOcpp16(path);
initStationWithBootNotification(client);
initConnectorsWithStatusNotification(client);
// heartbeat
HeartbeatResponse heartbeat = client.heartbeat(new HeartbeatRequest(), REGISTERED_CHARGE_BOX_ID);
Assertions.assertNotNull(heartbeat);
// Auth
AuthorizeResponse auth = client.authorize(new AuthorizeRequest().withIdTag(REGISTERED_OCPP_TAG), REGISTERED_CHARGE_BOX_ID);
// Simple request, not much done here
Assertions.assertNotNull(auth);
Assertions.assertEquals(AuthorizationStatus.ACCEPTED, auth.getIdTagInfo().getStatus());
// startTransaction
DateTime startTimeStamp = DateTime.now();
StartTransactionResponse start = client.startTransaction(new StartTransactionRequest().withConnectorId(usedConnectorID).withIdTag(REGISTERED_OCPP_TAG).withTimestamp(startTimeStamp).withMeterStart(0), REGISTERED_CHARGE_BOX_ID);
Assertions.assertNotNull(start);
int transactionID = start.getTransactionId();
List<TransactionRecord> allTransactions = __DatabasePreparer__.getTransactionRecords();
Assertions.assertEquals(1, allTransactions.size());
{
TransactionRecord t = allTransactions.get(0);
Assertions.assertEquals(startTimeStamp, t.getStartTimestamp());
Assertions.assertEquals(0, Integer.parseInt(t.getStartValue()));
Assertions.assertNull(t.getStopTimestamp());
Assertions.assertNull(t.getStopReason());
Assertions.assertNull(t.getStopValue());
}
// status
StatusNotificationResponse statusStart = client.statusNotification(new StatusNotificationRequest().withStatus(ChargePointStatus.CHARGING).withErrorCode(ChargePointErrorCode.NO_ERROR).withConnectorId(0).withTimestamp(DateTime.now()), REGISTERED_CHARGE_BOX_ID);
Assertions.assertNotNull(statusStart);
// send meterValues
if (meterValues != null) {
MeterValuesResponse meter = client.meterValues(new MeterValuesRequest().withConnectorId(usedConnectorID).withTransactionId(transactionID).withMeterValue(meterValues), REGISTERED_CHARGE_BOX_ID);
Assertions.assertNotNull(meter);
checkMeterValues(meterValues, transactionID);
}
// stopTransaction
DateTime stopTimeStamp = DateTime.now();
int stopValue = 30;
StopTransactionResponse stop = client.stopTransaction(new StopTransactionRequest().withTransactionId(transactionID).withTransactionData(transactionData).withTimestamp(stopTimeStamp).withIdTag(REGISTERED_OCPP_TAG).withMeterStop(stopValue), REGISTERED_CHARGE_BOX_ID);
{
Assertions.assertNotNull(stop);
List<TransactionRecord> transactionsStop = __DatabasePreparer__.getTransactionRecords();
Assertions.assertEquals(1, transactionsStop.size());
TransactionRecord t = transactionsStop.get(0);
Assertions.assertEquals(stopTimeStamp, t.getStopTimestamp());
Assertions.assertEquals(stopValue, Integer.parseInt(t.getStopValue()));
if (transactionData != null) {
checkMeterValues(transactionData, transactionID);
}
}
// status
StatusNotificationResponse statusStop = client.statusNotification(new StatusNotificationRequest().withStatus(ChargePointStatus.AVAILABLE).withErrorCode(ChargePointErrorCode.NO_ERROR).withConnectorId(usedConnectorID).withTimestamp(DateTime.now()), REGISTERED_CHARGE_BOX_ID);
Assertions.assertNotNull(statusStop);
}
use of com.amazonaws.mobile.client.internal.oauth2.AuthorizeResponse in project EVSUPERVISION by EnergyTIC.
the class StressTestSoapOCPP16 method attackInternal.
protected void attackInternal() throws Exception {
final List<String> idTags = getRandomStrings(ID_TAG_COUNT);
final List<String> chargeBoxIds = getRandomStrings(CHARGE_BOX_COUNT);
StressTester.Runnable runnable = new StressTester.Runnable() {
private final ThreadLocal<String> threadLocalChargeBoxId = new ThreadLocal<>();
@Override
public void beforeRepeat() {
CentralSystemService client = getForOcpp16(path);
ThreadLocalRandom localRandom = ThreadLocalRandom.current();
threadLocalChargeBoxId.set(chargeBoxIds.get(localRandom.nextInt(chargeBoxIds.size())));
String chargeBoxId = threadLocalChargeBoxId.get();
// to insert threadLocalChargeBoxId into db
BootNotificationResponse boot = client.bootNotification(new BootNotificationRequest().withChargePointVendor(getRandomString()).withChargePointModel(getRandomString()), chargeBoxId);
Assertions.assertEquals(RegistrationStatus.ACCEPTED, boot.getStatus());
}
@Override
public void toRepeat() {
CentralSystemService client = getForOcpp16(path);
ThreadLocalRandom localRandom = ThreadLocalRandom.current();
String chargeBoxId = threadLocalChargeBoxId.get();
String idTag = idTags.get(localRandom.nextInt(idTags.size()));
int connectorId = localRandom.nextInt(1, CONNECTOR_COUNT_PER_CHARGE_BOX + 1);
int transactionStart = localRandom.nextInt(0, Integer.MAX_VALUE);
int transactionStop = localRandom.nextInt(transactionStart + 1, Integer.MAX_VALUE);
HeartbeatResponse heartbeat = client.heartbeat(new HeartbeatRequest(), chargeBoxId);
Assertions.assertNotNull(heartbeat);
for (int i = 0; i <= CONNECTOR_COUNT_PER_CHARGE_BOX; i++) {
StatusNotificationResponse status = client.statusNotification(new StatusNotificationRequest().withErrorCode(ChargePointErrorCode.NO_ERROR).withStatus(ChargePointStatus.AVAILABLE).withConnectorId(i).withTimestamp(DateTime.now()), chargeBoxId);
Assertions.assertNotNull(status);
}
AuthorizeResponse auth = client.authorize(new AuthorizeRequest().withIdTag(idTag), chargeBoxId);
Assertions.assertNotEquals(AuthorizationStatus.ACCEPTED, auth.getIdTagInfo().getStatus());
StartTransactionResponse start = client.startTransaction(new StartTransactionRequest().withConnectorId(connectorId).withIdTag(idTag).withTimestamp(DateTime.now()).withMeterStart(transactionStart), chargeBoxId);
Assertions.assertNotNull(start);
StatusNotificationResponse statusStart = client.statusNotification(new StatusNotificationRequest().withErrorCode(ChargePointErrorCode.NO_ERROR).withStatus(ChargePointStatus.CHARGING).withConnectorId(connectorId).withTimestamp(DateTime.now()), chargeBoxId);
Assertions.assertNotNull(statusStart);
MeterValuesResponse meter = client.meterValues(new MeterValuesRequest().withConnectorId(connectorId).withTransactionId(start.getTransactionId()).withMeterValue(getMeterValues(transactionStart, transactionStop)), chargeBoxId);
Assertions.assertNotNull(meter);
StopTransactionResponse stop = client.stopTransaction(new StopTransactionRequest().withTransactionId(start.getTransactionId()).withTimestamp(DateTime.now()).withIdTag(idTag).withMeterStop(transactionStop), chargeBoxId);
Assertions.assertNotNull(stop);
StatusNotificationResponse statusStop = client.statusNotification(new StatusNotificationRequest().withErrorCode(ChargePointErrorCode.NO_ERROR).withStatus(ChargePointStatus.AVAILABLE).withConnectorId(connectorId).withTimestamp(DateTime.now()), chargeBoxId);
Assertions.assertNotNull(statusStop);
}
@Override
public void afterRepeat() {
}
};
StressTester tester = new StressTester(THREAD_COUNT, REPEAT_COUNT_PER_THREAD);
tester.test(runnable);
tester.shutDown();
}
use of com.amazonaws.mobile.client.internal.oauth2.AuthorizeResponse in project EVSUPERVISION by EnergyTIC.
the class Issue73Fix method sendAuth.
private static void sendAuth(CentralSystemService client, String chargeBoxId, AuthorizationStatus expected) {
AuthorizeResponse auth = client.authorize(new AuthorizeRequest().withIdTag(REGISTERED_OCPP_TAG), chargeBoxId);
Assertions.assertNotNull(auth);
Assertions.assertEquals(expected, auth.getIdTagInfo().getStatus());
}
Aggregations