fix: recover simulator cashflow and verify QA continuity and report assumptions
This commit is contained in:
@@ -11,6 +11,28 @@ use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class SimulationTaxParameterResolverTest extends TestCase
|
||||
{
|
||||
#[Test]
|
||||
public function synthetic_qa_versions_keep_historical_values_and_expose_a_period_transition_without_activating_rules(): void
|
||||
{
|
||||
$before = $this->publicVersion('2026-01-01', '2026-06-30', '7.5', 1);
|
||||
$after = $this->publicVersion('2026-07-01', null, '9.25', 2);
|
||||
$before['rule_code'] = $after['rule_code'] = 'QA.SYNTHETIC.NOT.LEGISLATION';
|
||||
$before['source']['title'] = $after['source']['title'] = 'SINTETICO QA — nao e legislacao';
|
||||
$before['source']['diploma'] = $after['source']['diploma'] = 'QA-FIXTURE-ONLY';
|
||||
$resolver = new SimulationTaxParameterResolver;
|
||||
$historical = $resolver->resolveAvailableParameters([$before], 'IVA', '2026-06-01', '2026-06-30', ['operation' => 'domestic']);
|
||||
$frozen = json_encode($historical, JSON_THROW_ON_ERROR);
|
||||
$current = $resolver->resolveAvailableParameters([$before, $after], 'IVA', '2026-07-01', '2026-07-31', ['operation' => 'domestic']);
|
||||
self::assertSame('7.5', $historical[0]['value']);
|
||||
self::assertSame('9.25', $current[0]['value']);
|
||||
self::assertSame(2, $current[0]['rule_version']);
|
||||
self::assertSame('indeterminate_period_change', $resolver->resolveAvailableParameters([$before, $after], 'IVA', '2026-01-01', '2026-12-31', ['operation' => 'domestic'])[0]['status']);
|
||||
self::assertSame($frozen, json_encode($historical, JSON_THROW_ON_ERROR));
|
||||
self::assertSame($historical, $resolver->resolveAvailableParameters([$before, $after], 'IVA', '2026-06-01', '2026-06-30', ['operation' => 'domestic']));
|
||||
$after['source']['version_no'] = 2;
|
||||
self::assertSame([], $resolver->resolveAvailableParameters([$after], 'IVA', '2026-07-01', '2026-07-31', ['operation' => 'domestic']));
|
||||
}
|
||||
|
||||
#[Test]
|
||||
public function it_selects_the_published_version_effective_on_the_requested_date_and_returns_its_source(): void
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user