CaiWuXiTong/tests/Unit/EcommerceFinance/CourierSurchargeSettlementMirrorConfigTest.php
zhoushengchen d3fee64f80 feat: 接入聚水潭附加费结算镜像
(cherry picked from commit 4b79370faea61aefe05dfe058480600b6fe9981e)
2026-10-12 09:19:55 +08:00

60 lines
3.2 KiB
PHP

<?php
namespace Tests\Unit\EcommerceFinance;
use Modules\EcommerceFinance\Repositories\CourierSurchargeSettlementMirrorRepository;
use Modules\EcommerceFinance\Services\BusinessMirrorDatasetRegistry;
use Tests\TestCase;
class CourierSurchargeSettlementMirrorConfigTest extends TestCase
{
public function test_settlement_sources_are_registered_with_stable_keys_and_fixed_approval_filter(): void
{
$registry = new BusinessMirrorDatasetRegistry();
$dataset = $registry->get(CourierSurchargeSettlementMirrorRepository::PRIMARY_DATASET);
$this->assertSame('jiansun', $dataset->sourceKey());
$this->assertSame('dbo', $dataset->sourceSchema());
$this->assertSame('ekf_Bookkeeping', $dataset->sourceObject());
$this->assertSame('js_ekf_bookkeeping_surcharge', $dataset->targetTable());
$this->assertSame(['Id'], $dataset->keyColumns());
$this->assertSame('CreationTime', $dataset->watermarkColumn());
$this->assertSame(['通过', '同意', '同意记账'], $dataset->fixedFilters()['IsAgreeReason']);
$this->assertSame(['通过', '同意', '同意记账'], config('upstream_mirrors.courier_surcharge_settlement.approved_values'));
foreach ([
CourierSurchargeSettlementMirrorRepository::EXPRESS_ORIGINAL_DATASET,
CourierSurchargeSettlementMirrorRepository::BOOKKEEPING_CONFIG_DATASET,
CourierSurchargeSettlementMirrorRepository::CHECK_DATASET,
CourierSurchargeSettlementMirrorRepository::CHECK_CONFIG_DATASET,
CourierSurchargeSettlementMirrorRepository::SHIPPING_DETAILS_DATASET,
CourierSurchargeSettlementMirrorRepository::SHIPPING_EXTENSION_DATASET,
CourierSurchargeSettlementMirrorRepository::OUTBOUND_DATASET,
CourierSurchargeSettlementMirrorRepository::RETURN_DATASET,
] as $key) {
$this->assertSame('jiansun', $registry->get($key)->sourceKey());
$this->assertNotSame('', $registry->get($key)->targetTable());
}
$expressOriginal = $registry->get(CourierSurchargeSettlementMirrorRepository::EXPRESS_ORIGINAL_DATASET);
$this->assertSame('express_Original', $expressOriginal->sourceObject());
$this->assertSame('js_express_original', $expressOriginal->targetTable());
$this->assertSame('DeliveryTime', $expressOriginal->watermarkColumn());
$this->assertSame('js_jst_order_express_details', $registry
->get(CourierSurchargeSettlementMirrorRepository::SHIPPING_DETAILS_DATASET)->targetTable());
$this->assertSame('js_jst_send_data_view_extension', $registry
->get(CourierSurchargeSettlementMirrorRepository::SHIPPING_EXTENSION_DATASET)->targetTable());
$this->assertSame('js_jst_sales_outbound_info', $registry
->get(CourierSurchargeSettlementMirrorRepository::OUTBOUND_DATASET)->targetTable());
}
public function test_surcharge_type_contract_has_only_the_requested_nine_types(): void
{
$this->assertSame([
'退回费', '拦截费', '改地址', '上楼费', '送货费',
'超区费', '安装费', '保费', '进仓费',
], CourierSurchargeSettlementMirrorRepository::SURCHARGE_TYPES);
}
}