2026-07-05 07:55:03 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
use App\Services\Autopodbor\Agent\CompetitorAgent;
|
|
|
|
|
use App\Services\Autopodbor\Agent\RealCompetitorAgent;
|
2026-07-06 14:35:22 +03:00
|
|
|
use App\Services\Autopodbor\Agent\Study\CompositePhoneReverse;
|
2026-07-05 07:55:03 +03:00
|
|
|
use App\Services\Autopodbor\Agent\Study\DeepStudyCollector;
|
|
|
|
|
use App\Services\Autopodbor\Agent\Study\PhoneReverse;
|
2026-07-06 14:35:22 +03:00
|
|
|
use App\Services\Autopodbor\Agent\Study\PhoneReverseExpander;
|
2026-07-05 07:55:03 +03:00
|
|
|
|
|
|
|
|
it('при deep_study+phone_reverse в DeepStudyCollector проброшен реальный PhoneReverse', function () {
|
|
|
|
|
config()->set('autopodbor.deep_study', true);
|
|
|
|
|
config()->set('autopodbor.phone_reverse', true);
|
|
|
|
|
|
|
|
|
|
$agent = app(CompetitorAgent::class);
|
|
|
|
|
expect($agent)->toBeInstanceOf(RealCompetitorAgent::class);
|
|
|
|
|
|
|
|
|
|
$deep = (new ReflectionProperty(RealCompetitorAgent::class, 'deep'))->getValue($agent);
|
|
|
|
|
expect($deep)->toBeInstanceOf(DeepStudyCollector::class);
|
|
|
|
|
|
|
|
|
|
$reverse = (new ReflectionProperty(DeepStudyCollector::class, 'reverse'))->getValue($deep);
|
|
|
|
|
expect($reverse)->toBeInstanceOf(PhoneReverse::class);
|
|
|
|
|
});
|
2026-07-05 09:30:27 +03:00
|
|
|
|
|
|
|
|
it('при phone_reverse+phone_reverse_yandex reverse = композит (2ГИС + Яндекс)', function () {
|
|
|
|
|
config()->set('autopodbor.deep_study', true);
|
|
|
|
|
config()->set('autopodbor.phone_reverse', true);
|
|
|
|
|
config()->set('autopodbor.phone_reverse_yandex', true);
|
2026-07-06 12:13:47 +03:00
|
|
|
// Ветка композита проверяется явно; параллельный разворот — отдельный флаг, здесь пиним ВЫКЛ,
|
|
|
|
|
// иначе dev-.env (AUTOPODBOR_PHONE_REVERSE_PARALLEL=true) даёт ParallelPhoneReverse.
|
|
|
|
|
config()->set('autopodbor.phone_reverse_parallel', false);
|
2026-07-05 09:30:27 +03:00
|
|
|
|
2026-07-06 14:35:22 +03:00
|
|
|
$agent = app(CompetitorAgent::class);
|
|
|
|
|
$deep = (new ReflectionProperty(RealCompetitorAgent::class, 'deep'))->getValue($agent);
|
|
|
|
|
$reverse = (new ReflectionProperty(DeepStudyCollector::class, 'reverse'))->getValue($deep);
|
|
|
|
|
expect($reverse)->toBeInstanceOf(CompositePhoneReverse::class);
|
2026-07-05 09:30:27 +03:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('только phone_reverse (без Яндекса) → reverse = 2ГИС-экспандер (не композит)', function () {
|
|
|
|
|
config()->set('autopodbor.deep_study', true);
|
|
|
|
|
config()->set('autopodbor.phone_reverse', true);
|
|
|
|
|
config()->set('autopodbor.phone_reverse_yandex', false);
|
|
|
|
|
|
2026-07-06 14:35:22 +03:00
|
|
|
$agent = app(CompetitorAgent::class);
|
|
|
|
|
$deep = (new ReflectionProperty(RealCompetitorAgent::class, 'deep'))->getValue($agent);
|
|
|
|
|
$reverse = (new ReflectionProperty(DeepStudyCollector::class, 'reverse'))->getValue($deep);
|
|
|
|
|
expect($reverse)->toBeInstanceOf(PhoneReverseExpander::class);
|
2026-07-05 09:30:27 +03:00
|
|
|
});
|