CaiWuXiTong/tests/Unit/EcommerceFinance/WorkPlatformPriceConfigTest.php

53 lines
2.4 KiB
PHP

<?php
namespace Tests\Unit\EcommerceFinance;
use Modules\EcommerceFinance\Repositories\ProductCatalogMirrorRepository;
use Modules\EcommerceFinance\Services\BusinessMirrorDatasetRegistry;
use Tests\TestCase;
class WorkPlatformPriceConfigTest extends TestCase
{
public function test_work_platform_price_dataset_is_wired_to_the_read_only_source(): void
{
$dataset = (new BusinessMirrorDatasetRegistry())->get(
ProductCatalogMirrorRepository::WORK_PLATFORM_PRICE_DATASET_KEY,
);
$this->assertSame('jiansun.dbo.pm_priceAdjustment', $dataset->key());
$this->assertSame('jiansun', $dataset->sourceKey());
$this->assertSame('dbo', $dataset->sourceSchema());
$this->assertSame('pm_priceAdjustment', $dataset->sourceObject());
$this->assertSame('js_pm_price_adjustment', $dataset->targetTable());
$this->assertSame(['Id'], $dataset->keyColumns());
$this->assertNull($dataset->watermarkColumn());
$this->assertContains(['skuCode', 'effectTime', 'Id'], $dataset->indexDefinitions());
$selection = array_map('strtolower', (new BusinessMirrorDatasetRegistry())->columnSelection($dataset->key()) ?? []);
foreach (['id', 'skucode', 'purchaseprice', 'effecttime'] as $column) {
$this->assertContains($column, $selection);
}
}
public function test_price_change_dataset_is_wired_to_the_read_only_source(): void
{
$dataset = (new BusinessMirrorDatasetRegistry())->get(
ProductCatalogMirrorRepository::PRICE_CHANGE_DATASET_KEY,
);
$this->assertSame('jiansun.dbo.pm_priceAdjustment_log', $dataset->key());
$this->assertSame('jiansun', $dataset->sourceKey());
$this->assertSame('dbo', $dataset->sourceSchema());
$this->assertSame('pm_priceAdjustment_log', $dataset->sourceObject());
$this->assertSame('js_pm_price_adjustment_log', $dataset->targetTable());
$this->assertSame(['Id'], $dataset->keyColumns());
$this->assertNull($dataset->watermarkColumn());
$this->assertContains(['skucode', 'effectStartTime', 'Id'], $dataset->indexDefinitions());
$selection = array_map('strtolower', (new BusinessMirrorDatasetRegistry())->columnSelection($dataset->key()) ?? []);
foreach (['id', 'skucode', 'pricetype', 'originalprice', 'afterprice', 'diffprice', 'effectstarttime'] as $column) {
$this->assertContains($column, $selection);
}
}
}