package com.ruoyi.order.service.impl; import com.ruoyi.chargingPile.api.model.Partner; import org.junit.jupiter.api.Test; import java.math.BigDecimal; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; class ChargingOrderShareConfigurationTest { @Test void onlyEnablesIcbcOnlineShareWithCompleteSubMerchantConfiguration() { Partner partner = new Partner(); partner.setIcbcSubMerId("231011990055"); assertFalse(TChargingOrderServiceImpl.shouldProcessIcbcOnlineShare("ICBC", new BigDecimal("1.00"), partner)); partner.setIcbcSubMerPrtclNo("2310119900550201"); assertTrue(TChargingOrderServiceImpl.shouldProcessIcbcOnlineShare("ICBC", new BigDecimal("1.00"), partner)); assertFalse(TChargingOrderServiceImpl.shouldProcessIcbcOnlineShare(false, "ICBC", new BigDecimal("1.00"), partner)); assertFalse(TChargingOrderServiceImpl.shouldProcessIcbcOnlineShare("ICBC", BigDecimal.ZERO, partner)); assertFalse(TChargingOrderServiceImpl.shouldProcessIcbcOnlineShare("BALANCE", new BigDecimal("1.00"), partner)); } @Test void scalesTemporarilyStaleBalanceBreakdownToFinalOrderNetAmount() { BigDecimal[] normalized = TChargingOrderServiceImpl.normalizeBalanceShareAmounts( new BigDecimal("9.00"), new BigDecimal("7.00"), new BigDecimal("3.00")); assertEquals(new BigDecimal("6.30"), normalized[0]); assertEquals(new BigDecimal("2.70"), normalized[1]); } }