@@ -481,4 +481,94 @@ TEST_F(MessageBuildingTest, VehicleActionCoverageReport) {
481481 }
482482}
483483
484+ TEST_F (MessageBuildingTest, SetCabinOverheatProtection_On) {
485+ pb_byte_t buffer[UniversalMessage_RoutableMessage_size];
486+ size_t length = 0 ;
487+
488+ int result = client->setCabinOverheatProtection (buffer, &length, true , false );
489+ EXPECT_EQ (result, 0 ) << " Setting cabin overheat protection ON should succeed" ;
490+ EXPECT_GT (length, 0 ) << " Message should have non-zero length" ;
491+ EXPECT_LE (length, sizeof (buffer)) << " Message should fit in buffer" ;
492+ }
493+
494+ TEST_F (MessageBuildingTest, SetCabinOverheatProtection_Off) {
495+ pb_byte_t buffer[UniversalMessage_RoutableMessage_size];
496+ size_t length = 0 ;
497+
498+ int result = client->setCabinOverheatProtection (buffer, &length, false , false );
499+ EXPECT_EQ (result, 0 ) << " Setting cabin overheat protection OFF should succeed" ;
500+ EXPECT_GT (length, 0 ) << " Message should have non-zero length" ;
501+ }
502+
503+ TEST_F (MessageBuildingTest, SetCabinOverheatProtection_FanOnly) {
504+ pb_byte_t buffer[UniversalMessage_RoutableMessage_size];
505+ size_t length = 0 ;
506+
507+ int result = client->setCabinOverheatProtection (buffer, &length, true , true );
508+ EXPECT_EQ (result, 0 ) << " Setting cabin overheat protection fan_only should succeed" ;
509+ EXPECT_GT (length, 0 ) << " Message should have non-zero length" ;
510+ }
511+
512+ TEST_F (MessageBuildingTest, ScheduleSoftwareUpdate) {
513+ pb_byte_t buffer[UniversalMessage_RoutableMessage_size];
514+ size_t length = 0 ;
515+
516+ int32_t offset_sec = 3600 ; // 1 hour from now
517+ int result = client->scheduleSoftwareUpdate (buffer, &length, offset_sec);
518+ EXPECT_EQ (result, 0 ) << " Scheduling software update should succeed" ;
519+ EXPECT_GT (length, 0 ) << " Message should have non-zero length" ;
520+ EXPECT_LE (length, sizeof (buffer)) << " Message should fit in buffer" ;
521+ }
522+
523+ TEST_F (MessageBuildingTest, ScheduleSoftwareUpdate_Delay) {
524+ pb_byte_t buffer[UniversalMessage_RoutableMessage_size];
525+ size_t length = 0 ;
526+
527+ int32_t offset_sec = 86400 ; // 24 hours from now
528+ int result = client->scheduleSoftwareUpdate (buffer, &length, offset_sec);
529+ EXPECT_EQ (result, 0 ) << " Scheduling software update with 24h delay should succeed" ;
530+ EXPECT_GT (length, 0 ) << " Message should have non-zero length" ;
531+ }
532+
533+ TEST_F (MessageBuildingTest, CancelSoftwareUpdate) {
534+ pb_byte_t buffer[UniversalMessage_RoutableMessage_size];
535+ size_t length = 0 ;
536+
537+ int result = client->cancelSoftwareUpdate (buffer, &length);
538+ EXPECT_EQ (result, 0 ) << " Canceling software update should succeed" ;
539+ EXPECT_GT (length, 0 ) << " Message should have non-zero length" ;
540+ EXPECT_LE (length, sizeof (buffer)) << " Message should fit in buffer" ;
541+ }
542+
543+ TEST_F (MessageBuildingTest, BuildScheduleSoftwareUpdateViaBuilder) {
544+ pb_byte_t buffer[UniversalMessage_RoutableMessage_size];
545+ size_t length = 0 ;
546+
547+ int32_t offset_sec = 7200 ; // 2 hours
548+ int result = client->buildCarServerVehicleActionMessage (
549+ buffer,
550+ &length,
551+ CarServer_VehicleAction_vehicleControlScheduleSoftwareUpdateAction_tag,
552+ &offset_sec);
553+ EXPECT_EQ (result, 0 ) << " Building schedule software update via builder should succeed" ;
554+ EXPECT_GT (length, 0 ) << " Message should have non-zero length" ;
555+ }
556+
557+ TEST_F (MessageBuildingTest, BuildSetCabinOverheatProtectionViaBuilder) {
558+ pb_byte_t buffer[UniversalMessage_RoutableMessage_size];
559+ size_t length = 0 ;
560+
561+ CarServer_SetCabinOverheatProtectionAction cop_action = CarServer_SetCabinOverheatProtectionAction_init_default;
562+ cop_action.on = true ;
563+ cop_action.fan_only = false ;
564+
565+ int result = client->buildCarServerVehicleActionMessage (
566+ buffer,
567+ &length,
568+ CarServer_VehicleAction_setCabinOverheatProtectionAction_tag,
569+ &cop_action);
570+ EXPECT_EQ (result, 0 ) << " Building set cabin overheat protection via builder should succeed" ;
571+ EXPECT_GT (length, 0 ) << " Message should have non-zero length" ;
572+ }
573+
484574
0 commit comments