. */ declare(strict_types=1); namespace Tests\Unit\Transformers; use FireflyIII\Models\Rule; use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleTrigger; use FireflyIII\Repositories\Rule\RuleRepositoryInterface; use FireflyIII\Transformers\RuleTransformer; use Illuminate\Support\Collection; use Symfony\Component\HttpFoundation\ParameterBag; use Tests\TestCase; /** * Class RuleTransformerTest */ class RuleTransformerTest extends TestCase { /** * Test basic tag transformer * * @covers \FireflyIII\Transformers\RuleTransformer */ public function testBasic(): void { /** @var Rule $rule */ $rule = Rule::first(); $repository = $this->mock(RuleRepositoryInterface::class); /** @var RuleTrigger $ruleTrigger */ $ruleTrigger = RuleTrigger::first(); /** @var RuleAction $ruleAction */ $ruleAction = RuleAction::first(); // mock stuff $repository->shouldReceive('setUser')->atLeast()->once(); $repository->shouldReceive('getRuleActions')->atLeast()->once()->andReturn(new Collection([$ruleAction])); $repository->shouldReceive('getRuleTriggers')->atLeast()->once()->andReturn(new Collection([$ruleTrigger])); $transformer = app(RuleTransformer::class); $transformer->setParameters(new ParameterBag); $result = $transformer->transform($rule); $this->assertEquals($rule->title, $result['title']); $this->assertEquals($ruleTrigger->trigger_type, $result['triggers'][0]['type']); $this->assertEquals($ruleAction->action_type, $result['actions'][0]['type']); } }