11package com.izivia.ocpp.adapter16.test
22
3- import com.izivia.ocpp.adapter16.mapper.CancelReservationMapper
4- import com.izivia.ocpp.adapter16.mapper.ChangeAvailabilityMapper
5- import com.izivia.ocpp.adapter16.mapper.ChangeConfigurationMapper
6- import com.izivia.ocpp.adapter16.mapper.ClearCacheMapper
7- import com.izivia.ocpp.adapter16.mapper.ClearChargingProfileMapper
8- import com.izivia.ocpp.adapter16.mapper.DataTransferMapper
9- import com.izivia.ocpp.adapter16.mapper.DiagnosticsStatusNotificationMapper
10- import com.izivia.ocpp.adapter16.mapper.FirmwareStatusNotificationMapper
11- import com.izivia.ocpp.adapter16.mapper.GetCompositeScheduleMapper
12- import com.izivia.ocpp.adapter16.mapper.GetConfigurationMapper
13- import com.izivia.ocpp.adapter16.mapper.GetDiagnosticsMapper
14- import com.izivia.ocpp.adapter16.mapper.GetLocalListVersionMapper
15- import com.izivia.ocpp.adapter16.mapper.RemoteStartTransactionMapper
16- import com.izivia.ocpp.adapter16.mapper.RemoteStopTransactionMapper
17- import com.izivia.ocpp.adapter16.mapper.ReserveNowMapper
18- import com.izivia.ocpp.adapter16.mapper.SendLocalListMapper
19- import com.izivia.ocpp.adapter16.mapper.SetChargingProfileMapper
20- import com.izivia.ocpp.adapter16.mapper.TriggerMessageMapper
21- import com.izivia.ocpp.adapter16.mapper.UnlockConnectorMapper
22- import com.izivia.ocpp.adapter16.mapper.UpdateFirmwareMapper
3+ import com.izivia.ocpp.adapter16.mapper.*
234import com.izivia.ocpp.api.model.cancelreservation.CancelReservationResp
245import com.izivia.ocpp.api.model.cancelreservation.enumeration.CancelReservationStatusEnumType
256import com.izivia.ocpp.api.model.changeavailability.ChangeAvailabilityResp
@@ -30,18 +11,8 @@ import com.izivia.ocpp.api.model.clearcache.ClearCacheResp
3011import com.izivia.ocpp.api.model.clearcache.enumeration.ClearCacheStatusEnumType
3112import com.izivia.ocpp.api.model.clearchargingprofile.ClearChargingProfileResp
3213import com.izivia.ocpp.api.model.clearchargingprofile.enumeration.ClearChargingProfileStatusEnumType
33- import com.izivia.ocpp.api.model.common.ChargingSchedulePeriodType
34- import com.izivia.ocpp.api.model.common.ChargingScheduleType
35- import com.izivia.ocpp.api.model.common.ComponentType
36- import com.izivia.ocpp.api.model.common.EVSEType
37- import com.izivia.ocpp.api.model.common.IdTokenType
38- import com.izivia.ocpp.api.model.common.StatusInfoType
39- import com.izivia.ocpp.api.model.common.VariableType
40- import com.izivia.ocpp.api.model.common.enumeration.ChargingProfilePurposeEnumType
41- import com.izivia.ocpp.api.model.common.enumeration.ChargingRateUnitEnumType
42- import com.izivia.ocpp.api.model.common.enumeration.GenericStatusEnumType
43- import com.izivia.ocpp.api.model.common.enumeration.IdTokenEnumType
44- import com.izivia.ocpp.api.model.common.enumeration.RequestStartStopStatusEnumType
14+ import com.izivia.ocpp.api.model.common.*
15+ import com.izivia.ocpp.api.model.common.enumeration.*
4516import com.izivia.ocpp.api.model.datatransfer.DataTransferReq
4617import com.izivia.ocpp.api.model.datatransfer.enumeration.DataTransferStatusEnumType
4718import com.izivia.ocpp.api.model.firmwarestatusnotification.FirmwareStatusNotificationReq
@@ -73,12 +44,15 @@ import com.izivia.ocpp.api.model.setchargingprofile.enumeration.ChargingProfileS
7344import com.izivia.ocpp.api.model.setvariables.SetVariableResultType
7445import com.izivia.ocpp.api.model.setvariables.SetVariablesResp
7546import com.izivia.ocpp.api.model.setvariables.enumeration.SetVariableStatusEnumType
47+ import com.izivia.ocpp.api.model.transactionevent.enumeration.ChargingStateEnumType
48+ import com.izivia.ocpp.api.model.transactionevent.enumeration.TransactionEventEnumType
7649import com.izivia.ocpp.api.model.triggermessage.TriggerMessageResp
7750import com.izivia.ocpp.api.model.triggermessage.enumeration.MessageTriggerEnumType
7851import com.izivia.ocpp.api.model.triggermessage.enumeration.TriggerMessageStatusEnumType
7952import com.izivia.ocpp.api.model.unlockconnector.UnlockConnectorResp
8053import com.izivia.ocpp.api.model.unlockconnector.enumeration.UnlockStatusEnumType
8154import com.izivia.ocpp.api.model.updatefirmware.FirmwareType
55+ import com.izivia.ocpp.api.transactionEventReq
8256import com.izivia.ocpp.core16.model.cancelreservation.CancelReservationReq
8357import com.izivia.ocpp.core16.model.cancelreservation.enumeration.CancelReservationStatus
8458import com.izivia.ocpp.core16.model.changeavailability.ChangeAvailabilityReq
@@ -116,6 +90,8 @@ import com.izivia.ocpp.core16.model.sendlocallist.enumeration.UpdateStatus
11690import com.izivia.ocpp.core16.model.sendlocallist.enumeration.UpdateType
11791import com.izivia.ocpp.core16.model.setchargingprofile.SetChargingProfileReq
11892import com.izivia.ocpp.core16.model.setchargingprofile.enumeration.ChargingProfileStatus
93+ import com.izivia.ocpp.core16.model.statusnotification.enumeration.ChargePointErrorCode
94+ import com.izivia.ocpp.core16.model.statusnotification.enumeration.ChargePointStatus
11995import com.izivia.ocpp.core16.model.triggermessage.TriggerMessageReq
12096import com.izivia.ocpp.core16.model.triggermessage.enumeration.MessageTrigger
12197import com.izivia.ocpp.core16.model.triggermessage.enumeration.TriggerMessageStatus
@@ -124,11 +100,17 @@ import com.izivia.ocpp.core16.model.unlockconnector.enumeration.UnlockStatus
124100import com.izivia.ocpp.core16.model.updatefirmware.UpdateFirmwareReq
125101import kotlinx.datetime.Instant
126102import org.junit.jupiter.api.Test
103+ import org.junit.jupiter.api.extension.ExtensionContext
104+ import org.junit.jupiter.params.ParameterizedTest
105+ import org.junit.jupiter.params.provider.Arguments
106+ import org.junit.jupiter.params.provider.ArgumentsProvider
107+ import org.junit.jupiter.params.provider.ArgumentsSource
127108import org.mapstruct.factory.Mappers
128109import strikt.api.expectThat
129110import strikt.api.expectThrows
130111import strikt.assertions.isA
131112import strikt.assertions.isEqualTo
113+ import java.util.stream.Stream
132114
133115class MapperTest {
134116 @Test
@@ -675,4 +657,46 @@ class MapperTest {
675657 .and { get { retries }.isEqualTo(2 ) }
676658 .and { get { retryInterval }.isEqualTo(3 ) }
677659 }
660+
661+ @ParameterizedTest
662+ @ArgumentsSource(StatusNotificationReqArgumentsProvider ::class )
663+ fun requestStatusNotificationMapper (
664+ eventType : TransactionEventEnumType ,
665+ chargingState : ChargingStateEnumType ,
666+ expectedStatus : ChargePointStatus
667+ ) {
668+ val mapper: StatusNotificationMapper = Mappers .getMapper(StatusNotificationMapper ::class .java)
669+ val instant = Instant .parse(" 2022-02-15T00:00:00.000Z" )
670+ val conId = 1
671+
672+ val transactionReq = transactionEventReq {
673+ eventType(eventType)
674+ timestamp(instant)
675+ evse {
676+ connectorId(conId)
677+ }
678+ transactionInfo {
679+ transactionId(" 0" )
680+ chargingState(chargingState)
681+ }
682+ }
683+
684+ val req = mapper.genToCoreReq(transactionReq)
685+
686+ expectThat(req)
687+ .and {
688+ get { status }.isEqualTo(expectedStatus)
689+ get { connectorId }.isEqualTo(conId)
690+ get { errorCode }.isEqualTo(ChargePointErrorCode .NoError )
691+ get { timestamp }.isEqualTo(instant)
692+ }
693+ }
678694}
695+
696+ class StatusNotificationReqArgumentsProvider : ArgumentsProvider {
697+ override fun provideArguments (context : ExtensionContext ): Stream <Arguments > = Stream .of(
698+ Arguments .of(TransactionEventEnumType .Started , ChargingStateEnumType .EVConnected , ChargePointStatus .Preparing ),
699+ Arguments .of(TransactionEventEnumType .Ended , ChargingStateEnumType .EVConnected , ChargePointStatus .Finishing )
700+ )
701+ }
702+
0 commit comments