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]);
|
}
|
}
|