]> Piment Noir Git Repositories - e-mobility-charging-stations-simulator.git/commitdiff
refactor(test): harmonize mockStation naming across all test files
authorJérôme Benoit <jerome.benoit@sap.com>
Sun, 1 Mar 2026 22:19:09 +0000 (23:19 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Sun, 1 Mar 2026 22:19:09 +0000 (23:19 +0100)
tests/charging-station/ocpp/2.0/OCPP20IncomingRequestService-InstallCertificate.test.ts
tests/charging-station/ocpp/2.0/OCPP20IncomingRequestService-RemoteStartAuth.test.ts
tests/charging-station/ocpp/2.0/OCPP20IncomingRequestService-RequestStartTransaction.test.ts
tests/charging-station/ocpp/2.0/OCPP20IncomingRequestService-RequestStopTransaction.test.ts
tests/charging-station/ocpp/2.0/OCPP20IncomingRequestService-SetVariables.test.ts
tests/charging-station/ocpp/2.0/OCPP20ServiceUtils-TransactionEvent.test.ts
tests/charging-station/ocpp/auth/OCPPAuthIntegration.test.ts
tests/charging-station/ocpp/auth/adapters/OCPP16AuthAdapter.test.ts
tests/charging-station/ocpp/auth/adapters/OCPP20AuthAdapter.test.ts
tests/charging-station/ocpp/auth/strategies/CertificateAuthStrategy.test.ts

index 3a2e6ce25496c8208aa91d038b076fa18457e255..50c6da9b3733de838ff86659badcaf79e73ace03 100644 (file)
@@ -57,7 +57,7 @@ await describe('I03 - InstallCertificate', async () => {
     standardCleanup()
   })
 
-  let mockChargingStation: ChargingStation
+  let mockStation: ChargingStation
   let stationWithCertManager: ChargingStationWithCertificateManager
   let incomingRequestService: OCPP20IncomingRequestService
   let testableService: ReturnType<typeof createTestableIncomingRequestService>
@@ -74,12 +74,12 @@ await describe('I03 - InstallCertificate', async () => {
       },
       websocketPingInterval: Constants.DEFAULT_WEBSOCKET_PING_INTERVAL,
     })
-    mockChargingStation = initialStation
-    mockChargingStation = initialStation
+    mockStation = initialStation
+    mockStation = initialStation
 
     // Use factory function to create station with certificate manager
     stationWithCertManager = createStationWithCertificateManager(
-      mockChargingStation,
+      mockStation,
       createMockCertificateManager()
     )
 
@@ -99,7 +99,7 @@ await describe('I03 - InstallCertificate', async () => {
       }
 
       const response: OCPP20InstallCertificateResponse =
-        await testableService.handleRequestInstallCertificate(mockChargingStation, request)
+        await testableService.handleRequestInstallCertificate(mockStation, request)
 
       expect(response).toBeDefined()
       expect(typeof response).toBe('object')
@@ -120,7 +120,7 @@ await describe('I03 - InstallCertificate', async () => {
       }
 
       const response: OCPP20InstallCertificateResponse =
-        await testableService.handleRequestInstallCertificate(mockChargingStation, request)
+        await testableService.handleRequestInstallCertificate(mockStation, request)
 
       expect(response).toBeDefined()
       expect(response.status).toBe(InstallCertificateStatusEnumType.Accepted)
@@ -138,7 +138,7 @@ await describe('I03 - InstallCertificate', async () => {
       }
 
       const response: OCPP20InstallCertificateResponse =
-        await testableService.handleRequestInstallCertificate(mockChargingStation, request)
+        await testableService.handleRequestInstallCertificate(mockStation, request)
 
       expect(response).toBeDefined()
       expect(response.status).toBe(InstallCertificateStatusEnumType.Accepted)
@@ -156,7 +156,7 @@ await describe('I03 - InstallCertificate', async () => {
       }
 
       const response: OCPP20InstallCertificateResponse =
-        await testableService.handleRequestInstallCertificate(mockChargingStation, request)
+        await testableService.handleRequestInstallCertificate(mockStation, request)
 
       expect(response).toBeDefined()
       expect(response.status).toBe(InstallCertificateStatusEnumType.Accepted)
@@ -172,7 +172,7 @@ await describe('I03 - InstallCertificate', async () => {
       }
 
       const response: OCPP20InstallCertificateResponse =
-        await testableService.handleRequestInstallCertificate(mockChargingStation, request)
+        await testableService.handleRequestInstallCertificate(mockStation, request)
 
       expect(response).toBeDefined()
       expect(response.status).toBe(InstallCertificateStatusEnumType.Rejected)
@@ -185,7 +185,7 @@ await describe('I03 - InstallCertificate', async () => {
       stationWithCertManager.certificateManager = createMockCertificateManager({
         storeCertificateResult: false,
       })
-      mockChargingStation.stationInfo.validateCertificateExpiry = true
+      mockStation.stationInfo.validateCertificateExpiry = true
 
       const request: OCPP20InstallCertificateRequest = {
         certificate: EXPIRED_PEM_CERTIFICATE,
@@ -193,14 +193,14 @@ await describe('I03 - InstallCertificate', async () => {
       }
 
       const response: OCPP20InstallCertificateResponse =
-        await testableService.handleRequestInstallCertificate(mockChargingStation, request)
+        await testableService.handleRequestInstallCertificate(mockStation, request)
 
       expect(response).toBeDefined()
       expect(response.status).toBe(InstallCertificateStatusEnumType.Rejected)
       expect(response.statusInfo).toBeDefined()
       expect(response.statusInfo?.reasonCode).toBeDefined()
 
-      delete mockChargingStation.stationInfo.validateCertificateExpiry
+      delete mockStation.stationInfo.validateCertificateExpiry
     })
   })
 
@@ -216,7 +216,7 @@ await describe('I03 - InstallCertificate', async () => {
       }
 
       const response: OCPP20InstallCertificateResponse =
-        await testableService.handleRequestInstallCertificate(mockChargingStation, request)
+        await testableService.handleRequestInstallCertificate(mockStation, request)
 
       expect(response).toBeDefined()
       expect(response.status).toBe(InstallCertificateStatusEnumType.Failed)
@@ -237,7 +237,7 @@ await describe('I03 - InstallCertificate', async () => {
       }
 
       const response: OCPP20InstallCertificateResponse =
-        await testableService.handleRequestInstallCertificate(mockChargingStation, request)
+        await testableService.handleRequestInstallCertificate(mockStation, request)
 
       expect(response).toBeDefined()
       expect(typeof response).toBe('object')
@@ -270,7 +270,7 @@ await describe('I03 - InstallCertificate', async () => {
       }
 
       const response: OCPP20InstallCertificateResponse =
-        await testableService.handleRequestInstallCertificate(mockChargingStation, request)
+        await testableService.handleRequestInstallCertificate(mockStation, request)
 
       expect(response.status).toBe(InstallCertificateStatusEnumType.Rejected)
       expect(response.statusInfo).toBeDefined()
index cc0420b34a52b3c979b27696d5af14c1d72a2270..f8c4ba4bd40f8ba03abaf68e2c4bd75776b5ec4c 100644 (file)
@@ -27,11 +27,11 @@ import { standardCleanup } from '../../../../tests/helpers/TestLifecycleHelpers.
 
 await describe('G03 - Remote Start Pre-Authorization', async () => {
   let service: OCPP20IncomingRequestService | undefined
-  let mockChargingStation: ChargingStation | undefined
+  let mockStation: ChargingStation | undefined
 
   beforeEach(() => {
     // Mock charging station with EVSE configuration
-    mockChargingStation = {
+    mockStation = {
       evses: new Map([
         [
           1,
@@ -62,7 +62,7 @@ await describe('G03 - Remote Start Pre-Authorization', async () => {
 
   afterEach(() => {
     standardCleanup()
-    mockChargingStation = undefined
+    mockStation = undefined
     service = undefined
   })
 
@@ -143,7 +143,7 @@ await describe('G03 - Remote Start Pre-Authorization', async () => {
     await it('should not modify connector status before authorization', () => {
       // Given: Connector in initial state
       // Then: Connector status should remain unchanged before processing
-      const connectorStatus = mockChargingStation.getConnectorStatus(1)
+      const connectorStatus = mockStation.getConnectorStatus(1)
       expect(connectorStatus?.transactionStarted).toBe(false)
       expect(connectorStatus?.status).toBe(ConnectorStatusEnum.Available)
     })
@@ -234,7 +234,7 @@ await describe('G03 - Remote Start Pre-Authorization', async () => {
   await describe('G03.FR.03.005 - Remote start on occupied connector', async () => {
     await it('should detect existing transaction on connector', () => {
       // Given: Connector with active transaction
-      mockChargingStation.getConnectorStatus = (): ConnectorStatus => ({
+      mockStation.getConnectorStatus = (): ConnectorStatus => ({
         availability: OperationalStatusEnumType.Operative,
         MeterValues: [],
         status: ConnectorStatusEnum.Occupied,
@@ -245,7 +245,7 @@ await describe('G03 - Remote Start Pre-Authorization', async () => {
       })
 
       // Then: Connector should have active transaction
-      const connectorStatus = mockChargingStation.getConnectorStatus(1)
+      const connectorStatus = mockStation.getConnectorStatus(1)
       expect(connectorStatus?.transactionStarted).toBe(true)
       expect(connectorStatus?.status).toBe(ConnectorStatusEnum.Occupied)
       expect(connectorStatus?.transactionId).toBe('existing-tx-123')
@@ -256,7 +256,7 @@ await describe('G03 - Remote Start Pre-Authorization', async () => {
       // Given: Existing transaction details
       const existingTransactionId = 'existing-tx-456'
       const existingTokenTag = 'EXISTING_TOKEN_002'
-      mockChargingStation.getConnectorStatus = (): ConnectorStatus => ({
+      mockStation.getConnectorStatus = (): ConnectorStatus => ({
         availability: OperationalStatusEnumType.Operative,
         MeterValues: [],
         status: ConnectorStatusEnum.Occupied,
@@ -267,7 +267,7 @@ await describe('G03 - Remote Start Pre-Authorization', async () => {
       })
 
       // Then: Existing transaction should be preserved
-      const connectorStatus = mockChargingStation.getConnectorStatus(1)
+      const connectorStatus = mockStation.getConnectorStatus(1)
       expect(connectorStatus?.transactionId).toBe(existingTransactionId)
       expect(connectorStatus?.transactionIdTag).toBe(existingTokenTag)
     })
@@ -354,7 +354,7 @@ await describe('G03 - Remote Start Pre-Authorization', async () => {
 
     await it('should support OCPP 2.0.1 version', () => {
       // Given: Station with OCPP 2.0.1
-      expect(mockChargingStation.stationInfo?.ocppVersion).toBe(OCPPVersion.VERSION_201)
+      expect(mockStation.stationInfo?.ocppVersion).toBe(OCPPVersion.VERSION_201)
     })
 
     await it('should support idToken with additional info', () => {
@@ -406,10 +406,10 @@ await describe('G03 - Remote Start Pre-Authorization', async () => {
 
     await it('should have valid charging station configuration', () => {
       // Then: Charging station should have required configuration
-      expect(mockChargingStation).toBeDefined()
-      expect(mockChargingStation.evses).toBeDefined()
-      expect(mockChargingStation.evses.size).toBeGreaterThan(0)
-      expect(mockChargingStation.stationInfo?.ocppVersion).toBe(OCPPVersion.VERSION_201)
+      expect(mockStation).toBeDefined()
+      expect(mockStation.evses).toBeDefined()
+      expect(mockStation.evses.size).toBeGreaterThan(0)
+      expect(mockStation.stationInfo?.ocppVersion).toBe(OCPPVersion.VERSION_201)
     })
   })
 })
index 85db043b7f4fa5afc30e1b1b4f3fcf9c4cc9d86e..2631febb22382d74f48896291a4e4c499318f895 100644 (file)
@@ -33,7 +33,7 @@ import {
 } from './OCPP20TestUtils.js'
 
 await describe('F01 & F02 - Remote Start Transaction', async () => {
-  let mockChargingStation: ChargingStation
+  let mockStation: ChargingStation
   let incomingRequestService: OCPP20IncomingRequestService
   let testableService: ReturnType<typeof createTestableIncomingRequestService>
   beforeEach(() => {
@@ -51,14 +51,14 @@ await describe('F01 & F02 - Remote Start Transaction', async () => {
       },
       websocketPingInterval: Constants.DEFAULT_WEBSOCKET_PING_INTERVAL,
     })
-    mockChargingStation = station
+    mockStation = station
     incomingRequestService = new OCPP20IncomingRequestService()
     testableService = createTestableIncomingRequestService(incomingRequestService)
-    const stationId = mockChargingStation.stationInfo?.chargingStationId ?? 'unknown'
+    const stationId = mockStation.stationInfo?.chargingStationId ?? 'unknown'
     OCPPAuthServiceFactory.setInstanceForTesting(stationId, createMockAuthService())
-    resetConnectorTransactionState(mockChargingStation)
-    resetLimits(mockChargingStation)
-    resetReportingValueSize(mockChargingStation)
+    resetConnectorTransactionState(mockStation)
+    resetLimits(mockStation)
+    resetReportingValueSize(mockStation)
   })
 
   afterEach(() => {
@@ -77,10 +77,7 @@ await describe('F01 & F02 - Remote Start Transaction', async () => {
       remoteStartId: 1,
     }
 
-    const response = await testableService.handleRequestStartTransaction(
-      mockChargingStation,
-      validRequest
-    )
+    const response = await testableService.handleRequestStartTransaction(mockStation, validRequest)
 
     expect(response).toBeDefined()
     expect(response.status).toBe(RequestStartStopStatusEnumType.Accepted)
@@ -152,7 +149,7 @@ await describe('F01 & F02 - Remote Start Transaction', async () => {
     }
 
     const response = await testableService.handleRequestStartTransaction(
-      mockChargingStation,
+      mockStation,
       requestWithGroupToken
     )
 
@@ -194,7 +191,7 @@ await describe('F01 & F02 - Remote Start Transaction', async () => {
     }
 
     const response = await testableService.handleRequestStartTransaction(
-      mockChargingStation,
+      mockStation,
       requestWithValidProfile
     )
 
@@ -236,7 +233,7 @@ await describe('F01 & F02 - Remote Start Transaction', async () => {
     }
 
     const response = await testableService.handleRequestStartTransaction(
-      mockChargingStation,
+      mockStation,
       requestWithInvalidProfile
     )
 
@@ -278,7 +275,7 @@ await describe('F01 & F02 - Remote Start Transaction', async () => {
     }
 
     const response = await testableService.handleRequestStartTransaction(
-      mockChargingStation,
+      mockStation,
       requestWithTransactionIdProfile
     )
 
@@ -299,7 +296,7 @@ await describe('F01 & F02 - Remote Start Transaction', async () => {
 
     // Should throw OCPPError for invalid evseId
     await expect(
-      testableService.handleRequestStartTransaction(mockChargingStation, invalidEvseRequest)
+      testableService.handleRequestStartTransaction(mockStation, invalidEvseRequest)
     ).rejects.toThrow('EVSE 999 does not exist on charging station')
   })
 
@@ -315,7 +312,7 @@ await describe('F01 & F02 - Remote Start Transaction', async () => {
       remoteStartId: 100,
     }
 
-    await testableService.handleRequestStartTransaction(mockChargingStation, firstRequest)
+    await testableService.handleRequestStartTransaction(mockStation, firstRequest)
 
     // Now try to start another transaction on the same EVSE
     const secondRequest: OCPP20RequestStartTransactionRequest = {
@@ -327,10 +324,7 @@ await describe('F01 & F02 - Remote Start Transaction', async () => {
       remoteStartId: 101,
     }
 
-    const response = await testableService.handleRequestStartTransaction(
-      mockChargingStation,
-      secondRequest
-    )
+    const response = await testableService.handleRequestStartTransaction(mockStation, secondRequest)
 
     expect(response).toBeDefined()
     expect(response.status).toBe(RequestStartStopStatusEnumType.Rejected)
@@ -348,10 +342,7 @@ await describe('F01 & F02 - Remote Start Transaction', async () => {
       remoteStartId: 200,
     }
 
-    const response = await testableService.handleRequestStartTransaction(
-      mockChargingStation,
-      validRequest
-    )
+    const response = await testableService.handleRequestStartTransaction(mockStation, validRequest)
 
     // Verify response structure
     expect(response).toBeDefined()
index 331f0cf47e3a0e24e9734e7c123e7c156750b6d2..2cf6be03a386609f5550a9f2f302952cd3aeab50 100644 (file)
@@ -41,7 +41,7 @@ import {
 
 await describe('F03 - Remote Stop Transaction', async () => {
   let sentTransactionEvents: OCPP20TransactionEventRequest[] = []
-  let mockChargingStation: ChargingStation
+  let mockStation: ChargingStation
   let incomingRequestService: OCPP20IncomingRequestService
   let testableService: ReturnType<typeof createTestableIncomingRequestService>
 
@@ -71,13 +71,13 @@ await describe('F03 - Remote Stop Transaction', async () => {
       },
       websocketPingInterval: Constants.DEFAULT_WEBSOCKET_PING_INTERVAL,
     })
-    mockChargingStation = station
+    mockStation = station
     incomingRequestService = new OCPP20IncomingRequestService()
     testableService = createTestableIncomingRequestService(incomingRequestService)
-    const stationId = mockChargingStation.stationInfo?.chargingStationId ?? 'unknown'
+    const stationId = mockStation.stationInfo?.chargingStationId ?? 'unknown'
     OCPPAuthServiceFactory.setInstanceForTesting(stationId, createMockAuthService())
-    resetLimits(mockChargingStation)
-    resetReportingValueSize(mockChargingStation)
+    resetLimits(mockStation)
+    resetReportingValueSize(mockStation)
   })
 
   afterEach(() => {
@@ -99,7 +99,7 @@ await describe('F03 - Remote Stop Transaction', async () => {
   ): Promise<string> {
     // Reset all connector states first to ensure clean state (unless skipped for multiple transactions)
     if (!skipReset) {
-      resetConnectorTransactionState(mockChargingStation)
+      resetConnectorTransactionState(mockStation)
     }
 
     const startRequest: OCPP20RequestStartTransactionRequest = {
@@ -112,7 +112,7 @@ await describe('F03 - Remote Stop Transaction', async () => {
     }
 
     const startResponse = await testableService.handleRequestStartTransaction(
-      mockChargingStation,
+      mockStation,
       startRequest
     )
 
@@ -135,10 +135,7 @@ await describe('F03 - Remote Stop Transaction', async () => {
     }
 
     // Execute stop transaction
-    const response = await testableService.handleRequestStopTransaction(
-      mockChargingStation,
-      stopRequest
-    )
+    const response = await testableService.handleRequestStopTransaction(mockStation, stopRequest)
 
     // Verify response
     expect(response).toBeDefined()
@@ -158,7 +155,7 @@ await describe('F03 - Remote Stop Transaction', async () => {
   // FR: F03.FR.02, F03.FR.03
   await it('should handle multiple active transactions correctly', async () => {
     // Reset once before starting multiple transactions
-    resetConnectorTransactionState(mockChargingStation)
+    resetConnectorTransactionState(mockStation)
 
     // Start transactions on different EVSEs (skip reset for subsequent transactions)
     const transactionId1 = await startTransaction(1, 200, true) // Skip reset since we just did it
@@ -173,10 +170,7 @@ await describe('F03 - Remote Stop Transaction', async () => {
       transactionId: transactionId2 as UUIDv4,
     }
 
-    const response = await testableService.handleRequestStopTransaction(
-      mockChargingStation,
-      stopRequest
-    )
+    const response = await testableService.handleRequestStopTransaction(mockStation, stopRequest)
 
     // Verify response
     expect(response).toBeDefined()
@@ -190,8 +184,8 @@ await describe('F03 - Remote Stop Transaction', async () => {
     expect(transactionEvent.evse?.id).toBe(2)
 
     // Verify other transactions are still active (test implementation dependent)
-    expect(mockChargingStation.getConnectorIdByTransactionId(transactionId1)).toBe(1)
-    expect(mockChargingStation.getConnectorIdByTransactionId(transactionId3)).toBe(3)
+    expect(mockStation.getConnectorIdByTransactionId(transactionId1)).toBe(1)
+    expect(mockStation.getConnectorIdByTransactionId(transactionId3)).toBe(3)
   })
 
   // FR: F03.FR.08
@@ -204,10 +198,7 @@ await describe('F03 - Remote Stop Transaction', async () => {
       transactionId: nonExistentTransactionId as UUIDv4,
     }
 
-    const response = await testableService.handleRequestStopTransaction(
-      mockChargingStation,
-      stopRequest
-    )
+    const response = await testableService.handleRequestStopTransaction(mockStation, stopRequest)
 
     // Verify rejection
     expect(response).toBeDefined()
@@ -226,10 +217,7 @@ await describe('F03 - Remote Stop Transaction', async () => {
       transactionId: '' as UUIDv4,
     }
 
-    const response = await testableService.handleRequestStopTransaction(
-      mockChargingStation,
-      invalidRequest
-    )
+    const response = await testableService.handleRequestStopTransaction(mockStation, invalidRequest)
 
     // Verify rejection
     expect(response).toBeDefined()
@@ -250,10 +238,7 @@ await describe('F03 - Remote Stop Transaction', async () => {
       transactionId: tooLongTransactionId as UUIDv4,
     }
 
-    const response = await testableService.handleRequestStopTransaction(
-      mockChargingStation,
-      invalidRequest
-    )
+    const response = await testableService.handleRequestStopTransaction(mockStation, invalidRequest)
 
     // Verify rejection
     expect(response).toBeDefined()
@@ -280,9 +265,9 @@ await describe('F03 - Remote Stop Transaction', async () => {
     }
 
     // Update the connector's transaction ID for testing
-    const connectorId = mockChargingStation.getConnectorIdByTransactionId(transactionId)
+    const connectorId = mockStation.getConnectorIdByTransactionId(transactionId)
     if (connectorId != null) {
-      const connectorStatus = mockChargingStation.getConnectorStatus(connectorId)
+      const connectorStatus = mockStation.getConnectorStatus(connectorId)
       if (connectorStatus) {
         connectorStatus.transactionId = testTransactionId
       }
@@ -292,10 +277,7 @@ await describe('F03 - Remote Stop Transaction', async () => {
       transactionId: testTransactionId as UUIDv4,
     }
 
-    const response = await testableService.handleRequestStopTransaction(
-      mockChargingStation,
-      stopRequest
-    )
+    const response = await testableService.handleRequestStopTransaction(mockStation, stopRequest)
 
     // Verify acceptance (format is valid)
     expect(response).toBeDefined()
@@ -378,10 +360,7 @@ await describe('F03 - Remote Stop Transaction', async () => {
       transactionId: transactionId as UUIDv4,
     }
 
-    const response = await testableService.handleRequestStopTransaction(
-      mockChargingStation,
-      stopRequest
-    )
+    const response = await testableService.handleRequestStopTransaction(mockStation, stopRequest)
 
     // Verify response structure
     expect(response).toBeDefined()
@@ -411,7 +390,7 @@ await describe('F03 - Remote Stop Transaction', async () => {
     }
 
     const response = await testableService.handleRequestStopTransaction(
-      mockChargingStation,
+      mockStation,
       stopRequestWithCustomData
     )
 
@@ -435,10 +414,7 @@ await describe('F03 - Remote Stop Transaction', async () => {
       transactionId: transactionId as UUIDv4,
     }
 
-    const response = await testableService.handleRequestStopTransaction(
-      mockChargingStation,
-      stopRequest
-    )
+    const response = await testableService.handleRequestStopTransaction(mockStation, stopRequest)
 
     expect(response.status).toBe(RequestStartStopStatusEnumType.Accepted)
 
@@ -466,11 +442,11 @@ await describe('F03 - Remote Stop Transaction', async () => {
 
   // FR: F03.FR.09
   await it('should include final meter values in TransactionEvent(Ended)', async () => {
-    resetConnectorTransactionState(mockChargingStation)
+    resetConnectorTransactionState(mockStation)
 
     const transactionId = await startTransaction(3, 700)
 
-    const connectorStatus = mockChargingStation.getConnectorStatus(3)
+    const connectorStatus = mockStation.getConnectorStatus(3)
     expect(connectorStatus).toBeDefined()
     if (connectorStatus != null) {
       connectorStatus.transactionEnergyActiveImportRegisterValue = 12345.67
@@ -482,10 +458,7 @@ await describe('F03 - Remote Stop Transaction', async () => {
       transactionId: transactionId as UUIDv4,
     }
 
-    const response = await testableService.handleRequestStopTransaction(
-      mockChargingStation,
-      stopRequest
-    )
+    const response = await testableService.handleRequestStopTransaction(mockStation, stopRequest)
 
     expect(response.status).toBe(RequestStartStopStatusEnumType.Accepted)
 
index 4d0da501494a3c31b699c6e9d319284285864ad9..cc26b82ed59376055a6c1f80a72ac872e428789c 100644 (file)
@@ -43,7 +43,7 @@ import {
 } from './OCPP20TestUtils.js'
 
 await describe('B05 - Set Variables', async () => {
-  let mockChargingStation: ChargingStation
+  let mockStation: ChargingStation
   let incomingRequestService: OCPP20IncomingRequestService
   let testableService: ReturnType<typeof createTestableIncomingRequestService>
 
@@ -59,7 +59,7 @@ await describe('B05 - Set Variables', async () => {
       },
       websocketPingInterval: Constants.DEFAULT_WEBSOCKET_PING_INTERVAL,
     })
-    mockChargingStation = station
+    mockStation = station
     incomingRequestService = new OCPP20IncomingRequestService()
     testableService = createTestableIncomingRequestService(incomingRequestService)
   })
@@ -92,7 +92,7 @@ await describe('B05 - Set Variables', async () => {
     }
 
     const response: { setVariableResult: OCPP20SetVariableResultType[] } =
-      testableService.handleRequestSetVariables(mockChargingStation, request)
+      testableService.handleRequestSetVariables(mockStation, request)
 
     expect(response).toBeDefined()
     expect(response.setVariableResult).toBeDefined()
@@ -132,7 +132,7 @@ await describe('B05 - Set Variables', async () => {
     }
 
     const response: { setVariableResult: OCPP20SetVariableResultType[] } =
-      testableService.handleRequestSetVariables(mockChargingStation, request)
+      testableService.handleRequestSetVariables(mockStation, request)
 
     expect(response.setVariableResult).toHaveLength(2)
     const firstResult = response.setVariableResult[0]
@@ -157,7 +157,7 @@ await describe('B05 - Set Variables', async () => {
     }
 
     const response: { setVariableResult: OCPP20SetVariableResultType[] } =
-      testableService.handleRequestSetVariables(mockChargingStation, request)
+      testableService.handleRequestSetVariables(mockStation, request)
 
     expect(response.setVariableResult).toHaveLength(1)
     const result = response.setVariableResult[0]
@@ -180,7 +180,7 @@ await describe('B05 - Set Variables', async () => {
       ],
     }
     const response: { setVariableResult: OCPP20SetVariableResultType[] } =
-      testableService.handleRequestSetVariables(mockChargingStation, request)
+      testableService.handleRequestSetVariables(mockStation, request)
     expect(response.setVariableResult).toHaveLength(1)
     const result = response.setVariableResult[0]
     expect(result.attributeStatus).toBe(SetVariableStatusEnumType.UnknownComponent)
@@ -200,7 +200,7 @@ await describe('B05 - Set Variables', async () => {
     }
 
     const response: { setVariableResult: OCPP20SetVariableResultType[] } =
-      testableService.handleRequestSetVariables(mockChargingStation, request)
+      testableService.handleRequestSetVariables(mockStation, request)
 
     expect(response.setVariableResult).toHaveLength(1)
     const result = response.setVariableResult[0]
@@ -249,7 +249,7 @@ await describe('B05 - Set Variables', async () => {
     }
 
     const response: { setVariableResult: OCPP20SetVariableResultType[] } =
-      testableService.handleRequestSetVariables(mockChargingStation, request)
+      testableService.handleRequestSetVariables(mockStation, request)
 
     expect(response.setVariableResult).toHaveLength(5)
     const [accepted, unknownVariable, unsupportedAttrHeartbeat, unsupportedAttrWs, oversize] =
@@ -280,7 +280,7 @@ await describe('B05 - Set Variables', async () => {
       ],
     }
     const response: { setVariableResult: OCPP20SetVariableResultType[] } =
-      testableService.handleRequestSetVariables(mockChargingStation, request)
+      testableService.handleRequestSetVariables(mockStation, request)
     expect(response.setVariableResult).toHaveLength(1)
     const result = response.setVariableResult[0]
     expect(result.attributeStatus).toBe(SetVariableStatusEnumType.NotSupportedAttributeType)
@@ -300,7 +300,7 @@ await describe('B05 - Set Variables', async () => {
       ],
     }
     const response: { setVariableResult: OCPP20SetVariableResultType[] } =
-      testableService.handleRequestSetVariables(mockChargingStation, request)
+      testableService.handleRequestSetVariables(mockStation, request)
     expect(response.setVariableResult).toHaveLength(1)
     const result = response.setVariableResult[0]
     expect(result.attributeStatus).toBe(SetVariableStatusEnumType.Rejected)
@@ -325,10 +325,10 @@ await describe('B05 - Set Variables', async () => {
         },
       ],
     }
-    testableService.handleRequestSetVariables(mockChargingStation, setRequest)
+    testableService.handleRequestSetVariables(mockStation, setRequest)
 
     const getResponse: { getVariableResult: OCPP20GetVariableResultType[] } =
-      testableService.handleRequestGetVariables(mockChargingStation, {
+      testableService.handleRequestGetVariables(mockStation, {
         getVariableData: [
           {
             attributeType: AttributeEnumType.Actual,
@@ -363,10 +363,10 @@ await describe('B05 - Set Variables', async () => {
         },
       ],
     }
-    testableService.handleRequestSetVariables(mockChargingStation, setRequest)
+    testableService.handleRequestSetVariables(mockStation, setRequest)
 
     const getBefore: { getVariableResult: OCPP20GetVariableResultType[] } =
-      testableService.handleRequestGetVariables(mockChargingStation, {
+      testableService.handleRequestGetVariables(mockStation, {
         getVariableData: [
           {
             attributeType: AttributeEnumType.Actual,
@@ -382,7 +382,7 @@ await describe('B05 - Set Variables', async () => {
     OCPP20VariableManager.getInstance().resetRuntimeOverrides()
 
     const getAfter: { getVariableResult: OCPP20GetVariableResultType[] } =
-      testableService.handleRequestGetVariables(mockChargingStation, {
+      testableService.handleRequestGetVariables(mockStation, {
         getVariableData: [
           {
             component: { name: OCPP20ComponentName.SampledDataCtrlr },
@@ -395,7 +395,7 @@ await describe('B05 - Set Variables', async () => {
 
   // FR: B07.FR.12
   await it('should reject all SetVariables when ItemsPerMessage limit exceeded', () => {
-    setStrictLimits(mockChargingStation, 1, 10000)
+    setStrictLimits(mockStation, 1, 10000)
     const request: OCPP20SetVariablesRequest = {
       setVariableData: [
         {
@@ -413,19 +413,19 @@ await describe('B05 - Set Variables', async () => {
       ],
     }
     const response: { setVariableResult: OCPP20SetVariableResultType[] } =
-      testableService.handleRequestSetVariables(mockChargingStation, request)
+      testableService.handleRequestSetVariables(mockStation, request)
     expect(response.setVariableResult).toHaveLength(2)
     response.setVariableResult.forEach(r => {
       expect(r.attributeStatus).toBe(SetVariableStatusEnumType.Rejected)
       expect(r.attributeStatusInfo?.reasonCode).toBe(ReasonCodeEnumType.TooManyElements)
       expect(r.attributeStatusInfo?.additionalInfo).toMatch(/ItemsPerMessage limit 1 exceeded/)
     })
-    resetLimits(mockChargingStation)
+    resetLimits(mockStation)
   })
 
   await it('should reject all SetVariables when BytesPerMessage limit exceeded (pre-calculation)', () => {
     // Set strict bytes limit low enough for request pre-estimate to exceed
-    setStrictLimits(mockChargingStation, 100, 10)
+    setStrictLimits(mockStation, 100, 10)
     const request: OCPP20SetVariablesRequest = {
       setVariableData: [
         {
@@ -441,14 +441,14 @@ await describe('B05 - Set Variables', async () => {
       ],
     }
     const response: { setVariableResult: OCPP20SetVariableResultType[] } =
-      testableService.handleRequestSetVariables(mockChargingStation, request)
+      testableService.handleRequestSetVariables(mockStation, request)
     expect(response.setVariableResult).toHaveLength(2)
     response.setVariableResult.forEach(r => {
       expect(r.attributeStatus).toBe(SetVariableStatusEnumType.Rejected)
       expect(r.attributeStatusInfo?.reasonCode).toBe(ReasonCodeEnumType.TooLargeElement)
       expect(r.attributeStatusInfo?.additionalInfo).toMatch(/BytesPerMessage limit 10 exceeded/)
     })
-    resetLimits(mockChargingStation)
+    resetLimits(mockStation)
   })
 
   await it('should reject all SetVariables when BytesPerMessage limit exceeded (post-calculation)', () => {
@@ -495,14 +495,14 @@ await describe('B05 - Set Variables', async () => {
     const preEstimate = Buffer.byteLength(JSON.stringify(request.setVariableData), 'utf8')
     const postCalcLimit = preEstimate + 10
     upsertConfigurationKey(
-      mockChargingStation,
+      mockStation,
       OCPP20RequiredVariableName.BytesPerMessage,
       postCalcLimit.toString(),
       false
     )
     expect(preEstimate).toBeLessThan(postCalcLimit)
     const response: { setVariableResult: OCPP20SetVariableResultType[] } =
-      testableService.handleRequestSetVariables(mockChargingStation, request)
+      testableService.handleRequestSetVariables(mockStation, request)
     const actualSize = Buffer.byteLength(JSON.stringify(response.setVariableResult), 'utf8')
     expect(actualSize).toBeGreaterThan(postCalcLimit)
     expect(response.setVariableResult).toHaveLength(request.setVariableData.length)
@@ -513,18 +513,18 @@ await describe('B05 - Set Variables', async () => {
         new RegExp(`BytesPerMessage limit ${postCalcLimit.toString()} exceeded`)
       )
     })
-    resetLimits(mockChargingStation)
+    resetLimits(mockStation)
   })
 
   // Effective ConfigurationValueSize / ValueSize propagation tests
   await it('should enforce ConfigurationValueSize when ValueSize unset (service propagation)', () => {
-    resetValueSizeLimits(mockChargingStation)
-    setConfigurationValueSize(mockChargingStation, 100)
-    upsertConfigurationKey(mockChargingStation, OCPP20RequiredVariableName.ValueSize, '')
+    resetValueSizeLimits(mockStation)
+    setConfigurationValueSize(mockStation, 100)
+    upsertConfigurationKey(mockStation, OCPP20RequiredVariableName.ValueSize, '')
     const prefix = 'wss://example.com/'
     const withinLimit = prefix + 'a'.repeat(100 - prefix.length)
     const overLimit = prefix + 'a'.repeat(100 - prefix.length + 1)
-    let response = testableService.handleRequestSetVariables(mockChargingStation, {
+    let response = testableService.handleRequestSetVariables(mockStation, {
       setVariableData: [
         {
           attributeValue: withinLimit,
@@ -534,7 +534,7 @@ await describe('B05 - Set Variables', async () => {
       ],
     })
     expect(response.setVariableResult[0].attributeStatus).toBe(SetVariableStatusEnumType.Accepted)
-    response = testableService.handleRequestSetVariables(mockChargingStation, {
+    response = testableService.handleRequestSetVariables(mockStation, {
       setVariableData: [
         {
           attributeValue: overLimit,
@@ -546,21 +546,17 @@ await describe('B05 - Set Variables', async () => {
     const res = response.setVariableResult[0]
     expect(res.attributeStatus).toBe(SetVariableStatusEnumType.Rejected)
     expect(res.attributeStatusInfo?.reasonCode).toBe(ReasonCodeEnumType.TooLargeElement)
-    resetValueSizeLimits(mockChargingStation)
+    resetValueSizeLimits(mockStation)
   })
 
   await it('should enforce ValueSize when ConfigurationValueSize unset (service propagation)', () => {
-    resetValueSizeLimits(mockChargingStation)
-    upsertConfigurationKey(
-      mockChargingStation,
-      OCPP20RequiredVariableName.ConfigurationValueSize,
-      ''
-    )
-    setValueSize(mockChargingStation, 120)
+    resetValueSizeLimits(mockStation)
+    upsertConfigurationKey(mockStation, OCPP20RequiredVariableName.ConfigurationValueSize, '')
+    setValueSize(mockStation, 120)
     const prefix = 'wss://example.com/'
     const withinLimit = prefix + 'b'.repeat(120 - prefix.length)
     const overLimit = prefix + 'b'.repeat(120 - prefix.length + 1)
-    let response = testableService.handleRequestSetVariables(mockChargingStation, {
+    let response = testableService.handleRequestSetVariables(mockStation, {
       setVariableData: [
         {
           attributeValue: withinLimit,
@@ -570,7 +566,7 @@ await describe('B05 - Set Variables', async () => {
       ],
     })
     expect(response.setVariableResult[0].attributeStatus).toBe(SetVariableStatusEnumType.Accepted)
-    response = testableService.handleRequestSetVariables(mockChargingStation, {
+    response = testableService.handleRequestSetVariables(mockStation, {
       setVariableData: [
         {
           attributeValue: overLimit,
@@ -582,17 +578,17 @@ await describe('B05 - Set Variables', async () => {
     const res = response.setVariableResult[0]
     expect(res.attributeStatus).toBe(SetVariableStatusEnumType.Rejected)
     expect(res.attributeStatusInfo?.reasonCode).toBe(ReasonCodeEnumType.TooLargeElement)
-    resetValueSizeLimits(mockChargingStation)
+    resetValueSizeLimits(mockStation)
   })
 
   await it('should use smaller ValueSize when ValueSize < ConfigurationValueSize (service propagation)', () => {
-    resetValueSizeLimits(mockChargingStation)
-    setConfigurationValueSize(mockChargingStation, 400)
-    setValueSize(mockChargingStation, 350)
+    resetValueSizeLimits(mockStation)
+    setConfigurationValueSize(mockStation, 400)
+    setValueSize(mockStation, 350)
     const prefix = 'wss://example.com/'
     const withinLimit = prefix + 'c'.repeat(350 - prefix.length)
     const overLimit = prefix + 'c'.repeat(350 - prefix.length + 1)
-    let response = testableService.handleRequestSetVariables(mockChargingStation, {
+    let response = testableService.handleRequestSetVariables(mockStation, {
       setVariableData: [
         {
           attributeValue: withinLimit,
@@ -602,7 +598,7 @@ await describe('B05 - Set Variables', async () => {
       ],
     })
     expect(response.setVariableResult[0].attributeStatus).toBe(SetVariableStatusEnumType.Accepted)
-    response = testableService.handleRequestSetVariables(mockChargingStation, {
+    response = testableService.handleRequestSetVariables(mockStation, {
       setVariableData: [
         {
           attributeValue: overLimit,
@@ -614,17 +610,17 @@ await describe('B05 - Set Variables', async () => {
     const res = response.setVariableResult[0]
     expect(res.attributeStatus).toBe(SetVariableStatusEnumType.Rejected)
     expect(res.attributeStatusInfo?.reasonCode).toBe(ReasonCodeEnumType.TooLargeElement)
-    resetValueSizeLimits(mockChargingStation)
+    resetValueSizeLimits(mockStation)
   })
 
   await it('should use smaller ConfigurationValueSize when ConfigurationValueSize < ValueSize (service propagation)', () => {
-    resetValueSizeLimits(mockChargingStation)
-    setConfigurationValueSize(mockChargingStation, 260)
-    setValueSize(mockChargingStation, 500)
+    resetValueSizeLimits(mockStation)
+    setConfigurationValueSize(mockStation, 260)
+    setValueSize(mockStation, 500)
     const prefix = 'wss://example.com/'
     const withinLimit = prefix + 'd'.repeat(260 - prefix.length)
     const overLimit = prefix + 'd'.repeat(260 - prefix.length + 1)
-    let response = testableService.handleRequestSetVariables(mockChargingStation, {
+    let response = testableService.handleRequestSetVariables(mockStation, {
       setVariableData: [
         {
           attributeValue: withinLimit,
@@ -634,7 +630,7 @@ await describe('B05 - Set Variables', async () => {
       ],
     })
     expect(response.setVariableResult[0].attributeStatus).toBe(SetVariableStatusEnumType.Accepted)
-    response = testableService.handleRequestSetVariables(mockChargingStation, {
+    response = testableService.handleRequestSetVariables(mockStation, {
       setVariableData: [
         {
           attributeValue: overLimit,
@@ -646,16 +642,16 @@ await describe('B05 - Set Variables', async () => {
     const res = response.setVariableResult[0]
     expect(res.attributeStatus).toBe(SetVariableStatusEnumType.Rejected)
     expect(res.attributeStatusInfo?.reasonCode).toBe(ReasonCodeEnumType.TooLargeElement)
-    resetValueSizeLimits(mockChargingStation)
+    resetValueSizeLimits(mockStation)
   })
 
   await it('should fallback to default absolute max length when both limits invalid/non-positive', () => {
-    resetValueSizeLimits(mockChargingStation)
-    setConfigurationValueSize(mockChargingStation, 0)
-    setValueSize(mockChargingStation, -5)
+    resetValueSizeLimits(mockStation)
+    setConfigurationValueSize(mockStation, 0)
+    setValueSize(mockStation, -5)
     const prefix = 'wss://example.com/'
     const validValue = prefix + 'e'.repeat(300 - prefix.length) // 300 < default absolute max length and < ConnectionUrl maxLength
-    const response = testableService.handleRequestSetVariables(mockChargingStation, {
+    const response = testableService.handleRequestSetVariables(mockStation, {
       setVariableData: [
         {
           attributeValue: validValue,
@@ -667,12 +663,12 @@ await describe('B05 - Set Variables', async () => {
     const res = response.setVariableResult[0]
     expect(res.attributeStatus).toBe(SetVariableStatusEnumType.Accepted)
     expect(res.attributeStatusInfo).toBeUndefined()
-    resetValueSizeLimits(mockChargingStation)
+    resetValueSizeLimits(mockStation)
   })
 
   // FR: B07.FR.12 (updated behavior: ConnectionUrl now readable after set)
   await it('should allow ConnectionUrl read-back after setting', () => {
-    resetLimits(mockChargingStation)
+    resetLimits(mockStation)
     const url = 'wss://central.example.com/ocpp'
     const setRequest: OCPP20SetVariablesRequest = {
       setVariableData: [
@@ -683,9 +679,9 @@ await describe('B05 - Set Variables', async () => {
         },
       ],
     }
-    testableService.handleRequestSetVariables(mockChargingStation, setRequest)
+    testableService.handleRequestSetVariables(mockStation, setRequest)
     const getResponse: { getVariableResult: OCPP20GetVariableResultType[] } =
-      testableService.handleRequestGetVariables(mockChargingStation, {
+      testableService.handleRequestGetVariables(mockStation, {
         getVariableData: [
           {
             attributeType: AttributeEnumType.Actual,
@@ -699,11 +695,11 @@ await describe('B05 - Set Variables', async () => {
     expect(result.attributeStatus).toBe(GetVariableStatusEnumType.Accepted)
     expect(result.attributeValue).toBe(url)
     expect(result.attributeStatusInfo).toBeUndefined()
-    resetLimits(mockChargingStation)
+    resetLimits(mockStation)
   })
 
   await it('should accept ConnectionUrl with custom mqtt scheme (no scheme restriction)', () => {
-    resetLimits(mockChargingStation)
+    resetLimits(mockStation)
     const url = 'mqtt://broker.internal:1883/ocpp'
     const setRequest: OCPP20SetVariablesRequest = {
       setVariableData: [
@@ -715,13 +711,13 @@ await describe('B05 - Set Variables', async () => {
       ],
     }
     const response: { setVariableResult: OCPP20SetVariableResultType[] } =
-      testableService.handleRequestSetVariables(mockChargingStation, setRequest)
+      testableService.handleRequestSetVariables(mockStation, setRequest)
     expect(response.setVariableResult).toHaveLength(1)
     const setResult = response.setVariableResult[0]
     expect(setResult.attributeStatus).toBe(SetVariableStatusEnumType.Accepted)
     expect(setResult.attributeStatusInfo).toBeUndefined()
     const getResponse: { getVariableResult: OCPP20GetVariableResultType[] } =
-      testableService.handleRequestGetVariables(mockChargingStation, {
+      testableService.handleRequestGetVariables(mockStation, {
         getVariableData: [
           {
             attributeType: AttributeEnumType.Actual,
@@ -735,6 +731,6 @@ await describe('B05 - Set Variables', async () => {
     expect(getResult.attributeStatus).toBe(GetVariableStatusEnumType.Accepted)
     expect(getResult.attributeValue).toBe(url)
     expect(getResult.attributeStatusInfo).toBeUndefined()
-    resetLimits(mockChargingStation)
+    resetLimits(mockStation)
   })
 })
index b7ee4d6620f7c01db935449b68301823dd376d4b..2c22455175aa0e3c2d1d38977613022833f8c473 100644 (file)
@@ -79,7 +79,7 @@ const TRANSACTION_FLOWS = [
 
 await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
   await describe('E01-E04 - OCPP 2.0.1 TransactionEvent Implementation', async () => {
-    let mockChargingStation: ChargingStation
+    let mockStation: ChargingStation
 
     beforeEach(() => {
       const { station } = createMockChargingStation({
@@ -96,8 +96,8 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         },
         websocketPingInterval: Constants.DEFAULT_WEBSOCKET_PING_INTERVAL,
       })
-      mockChargingStation = station
-      resetLimits(mockChargingStation)
+      mockStation = station
+      resetLimits(mockStation)
     })
 
     // Reset singleton state and timers after each test to ensure test isolation
@@ -112,10 +112,10 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const triggerReason = OCPP20TriggerReasonEnumType.Authorized
 
         // Reset sequence number to simulate new transaction
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         const transactionEvent = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           triggerReason,
           connectorId,
@@ -144,11 +144,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId = generateUUID()
 
         // Reset for new transaction
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         // Build first event (Started)
         const startEvent = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -157,7 +157,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         // Build second event (Updated)
         const updateEvent = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           connectorId,
@@ -166,7 +166,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         // Build third event (Ended)
         const endEvent = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Ended,
           OCPP20TriggerReasonEnumType.StopAuthorized,
           connectorId,
@@ -202,7 +202,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         }
 
         const transactionEvent = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.ChargingStateChanged,
           connectorId,
@@ -231,7 +231,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         try {
           OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.Authorized,
             connectorId,
@@ -274,11 +274,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         ]
 
         // Reset sequence number
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         for (const triggerReason of triggerReasons) {
           const transactionEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Updated,
             triggerReason,
             connectorId,
@@ -298,7 +298,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId = generateUUID()
 
         const response = await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -354,7 +354,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         // First, build a transaction event to set sequence number
         OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -362,11 +362,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         )
 
         // Verify sequence number is set
-        const connectorStatus = mockChargingStation.getConnectorStatus(connectorId)
+        const connectorStatus = mockStation.getConnectorStatus(connectorId)
         expect(connectorStatus?.transactionSeqNo).toBeDefined()
 
         // Reset sequence number
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         // Verify sequence number is reset
         expect(connectorStatus?.transactionSeqNo).toBeUndefined()
@@ -377,10 +377,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         // Should not throw error for non-existent connector
         expect(() => {
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(
-            mockChargingStation,
-            nonExistentConnectorId
-          )
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, nonExistentConnectorId)
         }).not.toThrow()
       })
     })
@@ -391,10 +388,10 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const connectorId = 1
         const transactionId = generateUUID()
 
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         const transactionEvent = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -446,10 +443,10 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const connectorId = 2
         const transactionId = generateUUID()
 
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         const transactionEvent = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -813,10 +810,10 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
             source: 'remote_command',
           }
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           const transactionEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             context,
             connectorId,
@@ -845,7 +842,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           }
 
           const transactionEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Updated,
             context,
             connectorId,
@@ -871,7 +868,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           }
 
           const response = await OCPP20ServiceUtils.sendTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             context,
             connectorId,
@@ -929,11 +926,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           const connectorId = 1
           const transactionId = generateUUID()
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           // Old method call should still work
           const oldEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.Authorized,
             connectorId,
@@ -951,7 +948,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
           // Old method call should still work
           const response = await OCPP20ServiceUtils.sendTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.Authorized,
             connectorId,
@@ -992,10 +989,10 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
               ? { idToken: `${id.toUpperCase()}_TOKEN_001`, type: OCPP20IdTokenEnumType.ISO14443 }
               : undefined
 
-            OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+            OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
             const startedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Started,
               expectedStartTrigger,
               connectorId,
@@ -1024,11 +1021,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
                 }
               : undefined
 
-            OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+            OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
             // Step 1: Started event
             const startedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Started,
               expectedStartTrigger,
               connectorId,
@@ -1038,7 +1035,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
             // Step 2: Charging state change
             const chargingEvent = OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Updated,
               OCPP20TriggerReasonEnumType.ChargingStateChanged,
               connectorId,
@@ -1048,7 +1045,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
             // Step 3: Ended event
             const endedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Ended,
               OCPP20TriggerReasonEnumType.StopAuthorized,
               connectorId,
@@ -1072,12 +1069,12 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
             const transaction1Id = generateUUID()
             const transaction2Id = generateUUID()
 
-            OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connector1)
-            OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connector2)
+            OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connector1)
+            OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connector2)
 
             // Start transaction on connector 1
             const conn1Event1 = OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Started,
               expectedStartTrigger,
               connector1,
@@ -1086,7 +1083,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
             // Start transaction on connector 2
             const conn2Event1 = OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Started,
               expectedStartTrigger,
               connector2,
@@ -1095,7 +1092,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
             // Update connector 1
             const conn1Event2 = OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Updated,
               OCPP20TriggerReasonEnumType.ChargingStateChanged,
               connector1,
@@ -1104,7 +1101,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
             // Update connector 2
             const conn2Event2 = OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Updated,
               OCPP20TriggerReasonEnumType.ChargingStateChanged,
               connector2,
@@ -1130,7 +1127,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
     // ==========================================================================
     await describe('E02 - Cable-First Transaction', async () => {
       beforeEach(() => {
-        resetConnectorTransactionState(mockChargingStation)
+        resetConnectorTransactionState(mockStation)
       })
 
       await describe('Cable Plug Event Sequencing', async () => {
@@ -1138,11 +1135,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           const connectorId = 1
           const transactionId = generateUUID()
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           // Step 1: Cable plugged in (Started)
           const cablePluggedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.CablePluggedIn,
             connectorId,
@@ -1151,7 +1148,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
           // Step 2: EV detected (Updated)
           const evDetectedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Updated,
             OCPP20TriggerReasonEnumType.EVDetected,
             connectorId,
@@ -1160,7 +1157,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
           // Step 3: Charging starts (Updated with ChargingStateChanged)
           const chargingStartedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Updated,
             OCPP20TriggerReasonEnumType.ChargingStateChanged,
             connectorId,
@@ -1188,11 +1185,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           const connectorId = 2
           const transactionId = generateUUID()
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           // Start transaction with cable plug
           const startEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.CablePluggedIn,
             connectorId,
@@ -1201,7 +1198,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
           // End transaction with EV departure (cable removal)
           const endEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Ended,
             OCPP20TriggerReasonEnumType.EVDeparted,
             connectorId,
@@ -1222,33 +1219,33 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           const connectorId = 1
           const transactionId = generateUUID()
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           // Build full cable-first flow
           const events = [
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Started,
               OCPP20TriggerReasonEnumType.CablePluggedIn,
               connectorId,
               transactionId
             ),
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Updated,
               OCPP20TriggerReasonEnumType.EVDetected,
               connectorId,
               transactionId
             ),
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Updated,
               OCPP20TriggerReasonEnumType.Authorized,
               connectorId,
               transactionId
             ),
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Updated,
               OCPP20TriggerReasonEnumType.ChargingStateChanged,
               connectorId,
@@ -1275,7 +1272,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           const connectorId = 1
 
           // Get connector status object
-          const connectorStatus = mockChargingStation.getConnectorStatus(connectorId)
+          const connectorStatus = mockStation.getConnectorStatus(connectorId)
           expect(connectorStatus).toBeDefined()
           if (connectorStatus == null) {
             throw new Error('Connector status should be defined')
@@ -1306,7 +1303,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           const connectorId = 2
           const transactionId = generateUUID()
 
-          const connectorStatus = mockChargingStation.getConnectorStatus(connectorId)
+          const connectorStatus = mockStation.getConnectorStatus(connectorId)
           expect(connectorStatus).toBeDefined()
           if (connectorStatus == null) {
             throw new Error('Connector status should be defined')
@@ -1337,13 +1334,13 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           const connectorId = 3
           const transactionId = generateUUID()
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           // Cable-first flow with suspended state
           const events = [
             // 1. Cable plugged
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Started,
               OCPP20TriggerReasonEnumType.CablePluggedIn,
               connectorId,
@@ -1351,7 +1348,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
             ),
             // 2. Start charging
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Updated,
               OCPP20TriggerReasonEnumType.ChargingStateChanged,
               connectorId,
@@ -1360,7 +1357,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
             ),
             // 3. Suspended by EV
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Updated,
               OCPP20TriggerReasonEnumType.ChargingStateChanged,
               connectorId,
@@ -1369,7 +1366,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
             ),
             // 4. Resume charging
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Updated,
               OCPP20TriggerReasonEnumType.ChargingStateChanged,
               connectorId,
@@ -1378,7 +1375,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
             ),
             // 5. EV departed
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Ended,
               OCPP20TriggerReasonEnumType.EVDeparted,
               connectorId,
@@ -1433,7 +1430,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
     // ==========================================================================
     await describe('E03 - IdToken-First Pre-Authorization', async () => {
       beforeEach(() => {
-        resetConnectorTransactionState(mockChargingStation)
+        resetConnectorTransactionState(mockStation)
       })
 
       await describe('E03.FR.13 - Trigger Reason Selection', async () => {
@@ -1489,11 +1486,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
             type: OCPP20IdTokenEnumType.ISO14443,
           }
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           // Build Started event with idToken (E03.FR.01: IdToken must be in first event)
           const startedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.Authorized,
             connectorId,
@@ -1516,11 +1513,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
             type: OCPP20IdTokenEnumType.ISO14443,
           }
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           // First event includes idToken
           const startedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.Authorized,
             connectorId,
@@ -1530,7 +1527,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
           // Second event should NOT include idToken (flag is set after first inclusion)
           const updatedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Updated,
             OCPP20TriggerReasonEnumType.ChargingStateChanged,
             connectorId,
@@ -1546,7 +1543,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           const connectorId = 1
           const transactionId = generateUUID()
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           // Test ISO14443 (RFID)
           const rfidToken: OCPP20IdTokenType = {
@@ -1555,7 +1552,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           }
 
           const rfidEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.Authorized,
             connectorId,
@@ -1566,8 +1563,8 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           expect(rfidEvent.idToken?.type).toBe(OCPP20IdTokenEnumType.ISO14443)
 
           // Reset for eMAID test
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
-          const connectorStatus = mockChargingStation.getConnectorStatus(connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
+          const connectorStatus = mockStation.getConnectorStatus(connectorId)
           if (connectorStatus != null) {
             connectorStatus.transactionIdTokenSent = undefined
           }
@@ -1579,7 +1576,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           }
 
           const emaidEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.Authorized,
             connectorId,
@@ -1601,11 +1598,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
             type: OCPP20IdTokenEnumType.ISO14443,
           }
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           // E03 Step 1: IdToken presented and authorized (Started with Authorized trigger)
           const authorizedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.Authorized,
             connectorId,
@@ -1615,7 +1612,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
           // E03 Step 2: Cable connected (Updated event)
           const cableConnectedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Updated,
             OCPP20TriggerReasonEnumType.CablePluggedIn,
             connectorId,
@@ -1624,7 +1621,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
           // E03 Step 3: Charging starts
           const chargingEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Updated,
             OCPP20TriggerReasonEnumType.ChargingStateChanged,
             connectorId,
@@ -1634,7 +1631,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
           // E03 Step 4: Transaction ends
           const endedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Ended,
             OCPP20TriggerReasonEnumType.StopAuthorized,
             connectorId,
@@ -1675,14 +1672,14 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           }
 
           // E03 IdToken-First: Starts with Authorized trigger
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
-          const connectorStatus = mockChargingStation.getConnectorStatus(connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
+          const connectorStatus = mockStation.getConnectorStatus(connectorId)
           if (connectorStatus != null) {
             connectorStatus.transactionIdTokenSent = undefined
           }
 
           const e03Start = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.Authorized,
             connectorId,
@@ -1691,13 +1688,13 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           )
 
           // E02 Cable-First: Starts with CablePluggedIn trigger
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
           if (connectorStatus != null) {
             connectorStatus.transactionIdTokenSent = undefined
           }
 
           const e02Start = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.CablePluggedIn,
             connectorId,
@@ -1723,11 +1720,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
             type: OCPP20IdTokenEnumType.ISO14443,
           }
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           // E03.FR.05: User authorizes with IdToken
           const authorizedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.Authorized,
             connectorId,
@@ -1737,7 +1734,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
           // E03.FR.06: Cable not connected within timeout - transaction ends with Timeout
           const timeoutEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Ended,
             OCPP20TriggerReasonEnumType.EVConnectTimeout,
             connectorId,
@@ -1782,11 +1779,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
             type: OCPP20IdTokenEnumType.ISO14443,
           }
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           // Transaction started with authorization
           const startEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.Authorized,
             connectorId,
@@ -1796,7 +1793,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
           // Transaction ended due to deauthorization (e.g., token revoked mid-session)
           const revokedEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Ended,
             OCPP20TriggerReasonEnumType.Deauthorized,
             connectorId,
@@ -1832,11 +1829,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
             type: OCPP20IdTokenEnumType.ISO14443,
           }
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           const events = [
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Started,
               OCPP20TriggerReasonEnumType.Authorized,
               connectorId,
@@ -1844,28 +1841,28 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
               { idToken }
             ),
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Updated,
               OCPP20TriggerReasonEnumType.CablePluggedIn,
               connectorId,
               transactionId
             ),
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Updated,
               OCPP20TriggerReasonEnumType.ChargingStateChanged,
               connectorId,
               transactionId
             ),
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Updated,
               OCPP20TriggerReasonEnumType.MeterValuePeriodic,
               connectorId,
               transactionId
             ),
             OCPP20ServiceUtils.buildTransactionEvent(
-              mockChargingStation,
+              mockStation,
               OCPP20TransactionEventEnumType.Ended,
               OCPP20TriggerReasonEnumType.StopAuthorized,
               connectorId,
@@ -1882,7 +1879,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         await it('should use unique transaction ID (E03.FR.08)', () => {
           const connectorId = 1
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           const transaction1Id = generateUUID()
           const transaction2Id = generateUUID()
@@ -1891,17 +1888,17 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
           expect(transaction1Id).not.toBe(transaction2Id)
 
           const event1 = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.Authorized,
             connectorId,
             transaction1Id
           )
 
-          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
           const event2 = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Started,
             OCPP20TriggerReasonEnumType.Authorized,
             connectorId,
@@ -1924,20 +1921,20 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
   await describe('E02 - OCPP 2.0.1 Offline TransactionEvent Queueing', async () => {
     let mockTracking: MockStationWithTracking
-    let mockChargingStation: ChargingStation
+    let mockStation: ChargingStation
     let sentRequests: CapturedOCPPRequest[]
     let setOnline: (online: boolean) => void
 
     beforeEach(() => {
       mockTracking = createMockStationWithRequestTracking()
-      mockChargingStation = mockTracking.station
+      mockStation = mockTracking.station
       sentRequests = mockTracking.sentRequests
       setOnline = mockTracking.setOnline
     })
 
     afterEach(() => {
       for (let connectorId = 1; connectorId <= 3; connectorId++) {
-        const connector = mockChargingStation.getConnectorStatus(connectorId)
+        const connector = mockStation.getConnectorStatus(connectorId)
         if (connector != null) {
           connector.transactionEventQueue = undefined
         }
@@ -1952,10 +1949,10 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         setOnline(false)
 
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         const response = await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -1966,7 +1963,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         expect(response.idTokenInfo).toBeUndefined()
 
-        const connector = mockChargingStation.getConnectorStatus(connectorId)
+        const connector = mockStation.getConnectorStatus(connectorId)
         expect(connector?.transactionEventQueue).toBeDefined()
         expect(connector.transactionEventQueue.length).toBe(1)
         expect(connector.transactionEventQueue[0].seqNo).toBe(0)
@@ -1978,10 +1975,10 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         setOnline(false)
 
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -1989,7 +1986,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         )
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           connectorId,
@@ -1997,14 +1994,14 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         )
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Ended,
           OCPP20TriggerReasonEnumType.StopAuthorized,
           connectorId,
           transactionId
         )
 
-        const connector = mockChargingStation.getConnectorStatus(connectorId)
+        const connector = mockStation.getConnectorStatus(connectorId)
         expect(connector?.transactionEventQueue?.length).toBe(3)
 
         expect(connector.transactionEventQueue[0].seqNo).toBe(0)
@@ -2027,10 +2024,10 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId = generateUUID()
 
         setOnline(true)
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -2043,7 +2040,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         setOnline(false)
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           connectorId,
@@ -2051,14 +2048,14 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         )
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           connectorId,
           transactionId
         )
 
-        const connector = mockChargingStation.getConnectorStatus(connectorId)
+        const connector = mockStation.getConnectorStatus(connectorId)
         expect(connector?.transactionEventQueue?.length).toBe(2)
         expect(connector.transactionEventQueue[0].seqNo).toBe(1)
         expect(connector.transactionEventQueue[1].seqNo).toBe(2)
@@ -2069,11 +2066,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId = generateUUID()
 
         setOnline(false)
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         const beforeQueue = new Date()
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -2081,7 +2078,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         )
         const afterQueue = new Date()
 
-        const connector = mockChargingStation.getConnectorStatus(connectorId)
+        const connector = mockStation.getConnectorStatus(connectorId)
         expect(connector?.transactionEventQueue?.[0]?.timestamp).toBeInstanceOf(Date)
         expect(connector.transactionEventQueue[0].timestamp.getTime()).toBeGreaterThanOrEqual(
           beforeQueue.getTime()
@@ -2098,10 +2095,10 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId = generateUUID()
 
         setOnline(false)
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -2109,7 +2106,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         )
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           connectorId,
@@ -2120,7 +2117,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         setOnline(true)
 
-        await OCPP20ServiceUtils.sendQueuedTransactionEvents(mockChargingStation, connectorId)
+        await OCPP20ServiceUtils.sendQueuedTransactionEvents(mockStation, connectorId)
 
         expect(sentRequests.length).toBe(2)
         expect(sentRequests[0].payload.seqNo).toBe(0)
@@ -2132,21 +2129,21 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId = generateUUID()
 
         setOnline(false)
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
           transactionId
         )
 
-        const connector = mockChargingStation.getConnectorStatus(connectorId)
+        const connector = mockStation.getConnectorStatus(connectorId)
         expect(connector?.transactionEventQueue?.length).toBe(1)
 
         setOnline(true)
-        await OCPP20ServiceUtils.sendQueuedTransactionEvents(mockChargingStation, connectorId)
+        await OCPP20ServiceUtils.sendQueuedTransactionEvents(mockStation, connectorId)
 
         expect(connector.transactionEventQueue.length).toBe(0)
       })
@@ -2156,10 +2153,10 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId = generateUUID()
 
         setOnline(false)
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -2167,7 +2164,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         )
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.ChargingStateChanged,
           connectorId,
@@ -2175,7 +2172,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         )
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Ended,
           OCPP20TriggerReasonEnumType.StopAuthorized,
           connectorId,
@@ -2183,7 +2180,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         )
 
         setOnline(true)
-        await OCPP20ServiceUtils.sendQueuedTransactionEvents(mockChargingStation, connectorId)
+        await OCPP20ServiceUtils.sendQueuedTransactionEvents(mockStation, connectorId)
 
         expect(sentRequests[0].payload.eventType).toBe(OCPP20TransactionEventEnumType.Started)
         expect(sentRequests[1].payload.eventType).toBe(OCPP20TransactionEventEnumType.Updated)
@@ -2198,7 +2195,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const connectorId = 1
 
         await expect(
-          OCPP20ServiceUtils.sendQueuedTransactionEvents(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.sendQueuedTransactionEvents(mockStation, connectorId)
         ).resolves.toBeUndefined()
 
         expect(sentRequests.length).toBe(0)
@@ -2206,11 +2203,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
       await it('should handle null queue gracefully', async () => {
         const connectorId = 1
-        const connector = mockChargingStation.getConnectorStatus(connectorId)
+        const connector = mockStation.getConnectorStatus(connectorId)
         connector.transactionEventQueue = undefined
 
         await expect(
-          OCPP20ServiceUtils.sendQueuedTransactionEvents(mockChargingStation, connectorId)
+          OCPP20ServiceUtils.sendQueuedTransactionEvents(mockStation, connectorId)
         ).resolves.toBeUndefined()
 
         expect(sentRequests.length).toBe(0)
@@ -2223,10 +2220,10 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId = generateUUID()
 
         setOnline(true)
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -2237,7 +2234,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         setOnline(false)
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           connectorId,
@@ -2245,7 +2242,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         )
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           connectorId,
@@ -2254,13 +2251,13 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         setOnline(true)
 
-        await OCPP20ServiceUtils.sendQueuedTransactionEvents(mockChargingStation, connectorId)
+        await OCPP20ServiceUtils.sendQueuedTransactionEvents(mockStation, connectorId)
 
         expect(sentRequests[1].payload.seqNo).toBe(1)
         expect(sentRequests[2].payload.seqNo).toBe(2)
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Ended,
           OCPP20TriggerReasonEnumType.StopAuthorized,
           connectorId,
@@ -2281,11 +2278,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId2 = generateUUID()
 
         setOnline(false)
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, 1)
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, 2)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, 1)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, 2)
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           1,
@@ -2293,7 +2290,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         )
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           2,
@@ -2301,15 +2298,15 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         )
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           1,
           transactionId1
         )
 
-        const connector1 = mockChargingStation.getConnectorStatus(1)
-        const connector2 = mockChargingStation.getConnectorStatus(2)
+        const connector1 = mockStation.getConnectorStatus(1)
+        const connector2 = mockStation.getConnectorStatus(2)
 
         expect(connector1?.transactionEventQueue?.length).toBe(2)
         expect(connector2?.transactionEventQueue?.length).toBe(1)
@@ -2327,11 +2324,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId2 = generateUUID()
 
         setOnline(false)
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, 1)
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, 2)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, 1)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, 2)
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           1,
@@ -2339,7 +2336,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         )
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           2,
@@ -2348,15 +2345,15 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         setOnline(true)
 
-        await OCPP20ServiceUtils.sendQueuedTransactionEvents(mockChargingStation, 1)
+        await OCPP20ServiceUtils.sendQueuedTransactionEvents(mockStation, 1)
 
         expect(sentRequests.length).toBe(1)
         expect(sentRequests[0].payload.transactionInfo.transactionId).toBe(transactionId1)
 
-        const connector2 = mockChargingStation.getConnectorStatus(2)
+        const connector2 = mockStation.getConnectorStatus(2)
         expect(connector2?.transactionEventQueue?.length).toBe(1)
 
-        await OCPP20ServiceUtils.sendQueuedTransactionEvents(mockChargingStation, 2)
+        await OCPP20ServiceUtils.sendQueuedTransactionEvents(mockStation, 2)
 
         expect(sentRequests.length).toBe(2)
         expect(sentRequests[1].payload.transactionInfo.transactionId).toBe(transactionId2)
@@ -2435,19 +2432,19 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
   await describe('E02 - OCPP 2.0.1 Periodic TransactionEvent at TxUpdatedInterval', async () => {
     let mockTracking: MockStationWithTracking
-    let mockChargingStation: ChargingStation
+    let mockStation: ChargingStation
     let sentRequests: CapturedOCPPRequest[]
 
     beforeEach(() => {
       mockTracking = createMockStationWithRequestTracking()
-      mockChargingStation = mockTracking.station
+      mockStation = mockTracking.station
       sentRequests = mockTracking.sentRequests
     })
 
     afterEach(() => {
       // Clean up any running timers
       for (let connectorId = 1; connectorId <= 3; connectorId++) {
-        const connector = mockChargingStation.getConnectorStatus(connectorId)
+        const connector = mockStation.getConnectorStatus(connectorId)
         if (connector?.transactionTxUpdatedSetInterval != null) {
           clearInterval(connector.transactionTxUpdatedSetInterval)
           connector.transactionTxUpdatedSetInterval = undefined
@@ -2478,7 +2475,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const connectorId = 1
 
         // Simulate startTxUpdatedInterval with zero interval
-        const connector = mockChargingStation.getConnectorStatus(connectorId)
+        const connector = mockStation.getConnectorStatus(connectorId)
         expect(connector).toBeDefined()
 
         // Zero interval should not start timer
@@ -2488,7 +2485,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
       await it('should not start timer when interval is negative', () => {
         const connectorId = 1
-        const connector = mockChargingStation.getConnectorStatus(connectorId)
+        const connector = mockStation.getConnectorStatus(connectorId)
         expect(connector).toBeDefined()
 
         // Negative interval should not start timer
@@ -2500,11 +2497,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         // Should not throw for non-existent connector
         expect(() => {
-          mockChargingStation.getConnectorStatus(nonExistentConnectorId)
+          mockStation.getConnectorStatus(nonExistentConnectorId)
         }).not.toThrow()
 
         // Should return undefined for non-existent connector
-        expect(mockChargingStation.getConnectorStatus(nonExistentConnectorId)).toBeUndefined()
+        expect(mockStation.getConnectorStatus(nonExistentConnectorId)).toBeUndefined()
       })
     })
 
@@ -2514,11 +2511,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId = generateUUID()
 
         // Reset sequence number
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         // Simulate sending periodic TransactionEvent (what the timer callback does)
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           connectorId,
@@ -2539,11 +2536,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId = generateUUID()
 
         // Reset sequence number for new transaction
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         // Send initial Started event
         const startEvent = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -2554,7 +2551,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         // Send multiple periodic events (simulating timer ticks)
         for (let i = 1; i <= 3; i++) {
           const periodicEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Updated,
             OCPP20TriggerReasonEnumType.MeterValuePeriodic,
             connectorId,
@@ -2564,7 +2561,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         }
 
         // Verify sequence numbers are continuous: 0, 1, 2, 3
-        const connector = mockChargingStation.getConnectorStatus(connectorId)
+        const connector = mockStation.getConnectorStatus(connectorId)
         expect(connector?.transactionSeqNo).toBe(3)
       })
 
@@ -2572,11 +2569,11 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const connectorId = 2
         const transactionId = generateUUID()
 
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         // Send periodic event
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           connectorId,
@@ -2591,10 +2588,10 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const connectorId = 1
         const transactionId = generateUUID()
 
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           connectorId,
@@ -2610,10 +2607,10 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const connectorId = 1
         const transactionId = generateUUID()
 
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         await OCPP20ServiceUtils.sendTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           connectorId,
@@ -2632,12 +2629,12 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId = generateUUID()
 
         // Reset for new transaction
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, connectorId)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, connectorId)
 
         // Simulate full transaction lifecycle with periodic updates
         // 1. Started event (seqNo: 0)
         const startEvent = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           connectorId,
@@ -2648,7 +2645,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         // 2. Multiple periodic updates (seqNo: 1, 2, 3)
         for (let i = 1; i <= 3; i++) {
           const updateEvent = OCPP20ServiceUtils.buildTransactionEvent(
-            mockChargingStation,
+            mockStation,
             OCPP20TransactionEventEnumType.Updated,
             OCPP20TriggerReasonEnumType.MeterValuePeriodic,
             connectorId,
@@ -2659,7 +2656,7 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         // 3. Ended event (seqNo: 4)
         const endEvent = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Ended,
           OCPP20TriggerReasonEnumType.StopAuthorized,
           connectorId,
@@ -2673,19 +2670,19 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
         const transactionId2 = generateUUID()
 
         // Reset sequence numbers for both connectors
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, 1)
-        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockChargingStation, 2)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, 1)
+        OCPP20ServiceUtils.resetTransactionSequenceNumber(mockStation, 2)
 
         // Build events for connector 1
         const event1Start = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           1,
           transactionId1
         )
         const event1Update = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           1,
@@ -2694,14 +2691,14 @@ await describe('OCPP20 TransactionEvent ServiceUtils', async () => {
 
         // Build events for connector 2
         const event2Start = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Started,
           OCPP20TriggerReasonEnumType.Authorized,
           2,
           transactionId2
         )
         const event2Update = OCPP20ServiceUtils.buildTransactionEvent(
-          mockChargingStation,
+          mockStation,
           OCPP20TransactionEventEnumType.Updated,
           OCPP20TriggerReasonEnumType.MeterValuePeriodic,
           2,
index ac717a9060a492b77331515fc1cec5552d1b7f82..7d6246e3a2c3d241935fe0ceca3aacddd6170c18 100644 (file)
@@ -20,8 +20,8 @@ import { createMockChargingStation } from '../../ChargingStationTestUtils.js'
 import { createMockAuthRequest, createMockIdentifier } from './helpers/MockFactories.js'
 
 await describe('OCPP Authentication', async () => {
-  let mockChargingStation16: ChargingStation
-  let mockChargingStation20: ChargingStation
+  let mockStation16: ChargingStation
+  let mockStation20: ChargingStation
 
   beforeEach(() => {
     // Create mock charging station with OCPP 1.6 configuration
@@ -34,7 +34,7 @@ await describe('OCPP Authentication', async () => {
         templateName: 'test-auth-template',
       },
     })
-    mockChargingStation16 = result16.station
+    mockStation16 = result16.station
 
     // Create mock charging station with OCPP 2.0 configuration
     const result20 = createMockChargingStation({
@@ -46,7 +46,7 @@ await describe('OCPP Authentication', async () => {
         templateName: 'test-auth-template',
       },
     })
-    mockChargingStation20 = result20.station
+    mockStation20 = result20.station
   })
 
   afterEach(() => {
@@ -57,7 +57,7 @@ await describe('OCPP Authentication', async () => {
     let authService16: OCPPAuthServiceImpl
 
     beforeEach(() => {
-      authService16 = new OCPPAuthServiceImpl(mockChargingStation16)
+      authService16 = new OCPPAuthServiceImpl(mockStation16)
     })
 
     await it('should authenticate with valid identifier', async () => {
@@ -113,7 +113,7 @@ await describe('OCPP Authentication', async () => {
     let authService20: OCPPAuthServiceImpl
 
     beforeEach(() => {
-      authService20 = new OCPPAuthServiceImpl(mockChargingStation20)
+      authService20 = new OCPPAuthServiceImpl(mockStation20)
     })
 
     await it('should authenticate with valid identifier', async () => {
@@ -157,7 +157,7 @@ await describe('OCPP Authentication', async () => {
     let authServiceError: OCPPAuthServiceImpl
 
     beforeEach(() => {
-      authServiceError = new OCPPAuthServiceImpl(mockChargingStation16)
+      authServiceError = new OCPPAuthServiceImpl(mockStation16)
     })
 
     await it('should handle invalid identifier gracefully during auth flow', async () => {
@@ -183,7 +183,7 @@ await describe('OCPP Authentication', async () => {
     let authServiceConcurrent: OCPPAuthServiceImpl
 
     beforeEach(() => {
-      authServiceConcurrent = new OCPPAuthServiceImpl(mockChargingStation16)
+      authServiceConcurrent = new OCPPAuthServiceImpl(mockStation16)
     })
 
     await it('should handle concurrent authentication requests with mixed contexts', async () => {
index a5a586b8d3d769667d5560c5b6d25f9b4a3968ed..94ac175a0eba74fe4d921c56d19339e674e6c5db 100644 (file)
@@ -23,11 +23,11 @@ import { createMockAuthorizationResult, createMockIdentifier } from '../helpers/
 
 await describe('OCPP16AuthAdapter', async () => {
   let adapter: OCPP16AuthAdapter
-  let mockChargingStation: ChargingStation
+  let mockStation: ChargingStation
 
   beforeEach(() => {
     // Create mock charging station
-    mockChargingStation = {
+    mockStation = {
       getConnectorStatus: (connectorId: number) => ({
         authorizeIdTag: undefined,
       }),
@@ -51,7 +51,7 @@ await describe('OCPP16AuthAdapter', async () => {
       },
     } as unknown as ChargingStation
 
-    adapter = new OCPP16AuthAdapter(mockChargingStation)
+    adapter = new OCPP16AuthAdapter(mockStation)
   })
 
   afterEach(() => {
@@ -169,7 +169,7 @@ await describe('OCPP16AuthAdapter', async () => {
 
     await it('should handle authorization failure gracefully', async () => {
       // Override mock to simulate failure
-      mockChargingStation.ocppRequestService.requestHandler = (): Promise<never> => {
+      mockStation.ocppRequestService.requestHandler = (): Promise<never> => {
         return Promise.reject(new Error('Network error'))
       }
 
@@ -189,15 +189,15 @@ await describe('OCPP16AuthAdapter', async () => {
     })
 
     await it('should return false when station is offline', async () => {
-      mockChargingStation.inAcceptedState = () => false
+      mockStation.inAcceptedState = () => false
 
       const isAvailable = await adapter.isRemoteAvailable()
       expect(isAvailable).toBe(false)
     })
 
     await it('should return false when remote authorization is disabled', async () => {
-      if (mockChargingStation.stationInfo) {
-        mockChargingStation.stationInfo.remoteAuthorization = false
+      if (mockStation.stationInfo) {
+        mockStation.stationInfo.remoteAuthorization = false
       }
 
       const isAvailable = await adapter.isRemoteAvailable()
index 73ee696a5bb1ac34627c4795482548ec2834dfa9..2337205e5595a6a1d67080e28b2291b282cf25b6 100644 (file)
@@ -27,10 +27,10 @@ import { createMockAuthorizationResult, createMockIdentifier } from '../helpers/
 
 await describe('OCPP20AuthAdapter', async () => {
   let adapter: OCPP20AuthAdapter
-  let mockChargingStation: ChargingStation
+  let mockStation: ChargingStation
 
   beforeEach(() => {
-    mockChargingStation = {
+    mockStation = {
       inAcceptedState: () => true,
       logPrefix: () => '[TEST-STATION-20]',
       stationInfo: {
@@ -38,7 +38,7 @@ await describe('OCPP20AuthAdapter', async () => {
       },
     } as unknown as ChargingStation
 
-    adapter = new OCPP20AuthAdapter(mockChargingStation)
+    adapter = new OCPP20AuthAdapter(mockStation)
   })
 
   afterEach(() => {
@@ -269,7 +269,7 @@ await describe('OCPP20AuthAdapter', async () => {
     })
 
     await it('should return false when station is offline', async t => {
-      mockChargingStation.inAcceptedState = () => false
+      mockStation.inAcceptedState = () => false
       t.mock.method(
         adapter as unknown as { getVariableValue: () => Promise<string | undefined> },
         'getVariableValue',
index 6fef91142abc434695bf7c7aa2cec3315875f830..13df673b64ab3d2058bda97cc543045dc229ad06 100644 (file)
@@ -25,11 +25,11 @@ import {
 
 await describe('CertificateAuthStrategy', async () => {
   let strategy: CertificateAuthStrategy
-  let mockChargingStation: ChargingStation
+  let mockStation: ChargingStation
   let mockOCPP20Adapter: OCPPAuthAdapter
 
   beforeEach(() => {
-    mockChargingStation = {
+    mockStation = {
       logPrefix: () => '[TEST-CS-001]',
       stationInfo: {
         chargingStationId: 'TEST-CS-001',
@@ -54,7 +54,7 @@ await describe('CertificateAuthStrategy', async () => {
     const adapters = new Map<OCPPVersion, OCPPAuthAdapter>()
     adapters.set(OCPPVersion.VERSION_20, mockOCPP20Adapter)
 
-    strategy = new CertificateAuthStrategy(mockChargingStation, adapters)
+    strategy = new CertificateAuthStrategy(mockStation, adapters)
   })
 
   afterEach(() => {