60 lines
3.2 KiB
PHP
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);
|
|
}
|
|
}
|