@@ -292,6 +292,15 @@ func CheckCall(call *ocppj.Call, t *testing.T, expectedAction string, expectedId
292292 assert .Nil (t , err )
293293}
294294
295+ func CheckSend (call * ocppj.Send , t * testing.T , expectedAction string , expectedId string ) {
296+ assert .Equal (t , ocppj .SEND , call .GetMessageTypeId ())
297+ assert .Equal (t , expectedAction , call .Action )
298+ assert .Equal (t , expectedId , call .GetUniqueId ())
299+ assert .NotNil (t , call .Payload )
300+ err := Validate .Struct (call )
301+ assert .Nil (t , err )
302+ }
303+
295304func ParseCallResult (endpoint * ocppj.Endpoint , state ocppj.ClientState , json string , t * testing.T ) * ocppj.CallResult {
296305 parsedData , err := ocppj .ParseJsonMessage (json )
297306 require .NoError (t , err )
@@ -336,6 +345,16 @@ func CheckCallError(t *testing.T, callError *ocppj.CallError, expectedId string,
336345 assert .Nil (t , err )
337346}
338347
348+ func CheckCallResultError (t * testing.T , callError * ocppj.CallResultError , expectedId string , expectedError ocpp.ErrorCode , expectedDescription string , expectedDetails interface {}) {
349+ assert .Equal (t , ocppj .CALL_RESULT_ERROR , callError .GetMessageTypeId ())
350+ assert .Equal (t , expectedId , callError .GetUniqueId ())
351+ assert .Equal (t , expectedError , callError .ErrorCode )
352+ assert .Equal (t , expectedDescription , callError .ErrorDescription )
353+ assert .Equal (t , expectedDetails , callError .ErrorDetails )
354+ err := Validate .Struct (callError )
355+ assert .Nil (t , err )
356+ }
357+
339358func assertPanic (t * testing.T , f func (), recoveredAssertion func (interface {})) {
340359 defer func () {
341360 r := recover ()
@@ -496,6 +515,23 @@ func (suite *OcppJTestSuite) TestCreateCall() {
496515 assert .Nil (t , pendingRequest )
497516}
498517
518+ func (suite * OcppJTestSuite ) TestCreateSend () {
519+ t := suite .T ()
520+ mockValue := "somevalue"
521+ request := newMockRequest (mockValue )
522+ call , err := suite .chargePoint .CreateSend (request )
523+ assert .Nil (t , err )
524+ CheckSend (call , t , MockFeatureName + "Stream" , call .UniqueId )
525+ message , ok := call .Payload .(* MockRequest )
526+ assert .True (t , ok )
527+ assert .NotNil (t , message )
528+ assert .Equal (t , mockValue , message .MockValue )
529+ // Check that request was not yet stored as pending request
530+ pendingRequest , exists := suite .chargePoint .RequestState .GetPendingRequest (call .UniqueId )
531+ assert .False (t , exists )
532+ assert .Nil (t , pendingRequest )
533+ }
534+
499535func (suite * OcppJTestSuite ) TestCreateCallResult () {
500536 t := suite .T ()
501537 mockValue := "someothervalue"
@@ -525,6 +561,21 @@ func (suite *OcppJTestSuite) TestCreateCallError() {
525561 CheckCallError (t , callError , mockUniqueId , ocppj .GenericError , mockDescription , mockDetails )
526562}
527563
564+ func (suite * OcppJTestSuite ) TestCreateCallResultError () {
565+ t := suite .T ()
566+ mockUniqueId := "123456"
567+ mockDescription := "somedescription"
568+ mockDetailString := "somedetailstring"
569+ type MockDetails struct {
570+ DetailString string
571+ }
572+ mockDetails := MockDetails {DetailString : mockDetailString }
573+ callError , err := suite .chargePoint .CreateCallResultError (mockUniqueId , ocppj .GenericError , mockDescription , mockDetails )
574+ assert .Nil (t , err )
575+ assert .NotNil (t , callError )
576+ CheckCallResultError (t , callError , mockUniqueId , ocppj .GenericError , mockDescription , mockDetails )
577+ }
578+
528579func (suite * OcppJTestSuite ) TestParseMessageInvalidLength () {
529580 t := suite .T ()
530581 mockMessage := make ([]interface {}, 2 )
0 commit comments