/** * @BeforeScenario */ public function prepare() { $this->members = new InMemoryMembers(); $this->membersHelper = new MembersHelper(); $this->useCase = new TransferFunds($this->members); $this->useCase->attach($this->membersHelper); }
/** * @param TransferFunds $useCase * @param EwalletExtension $formatter */ public function __construct(TransferFunds $useCase, MemberFormatter $formatter) { parent::__construct(); $this->formatter = $formatter; $this->useCase = $useCase; $this->useCase->attach($this); }
/** @test */ function it_should_transfer_funds_between_members() { Fixtures::load(__DIR__ . '/../../../_data/fixtures/members.yml', $this->entityManager); /** @var Members $members */ $members = $this->entityManager->getRepository(Member::class); $notifier = Mockery::mock(TransferFundsNotifier::class)->shouldIgnoreMissing(); $transferBalance = new TransferFunds($members); $transferBalance->attach($notifier); $transferBalance->transfer($request = TransferFundsRequest::from(['fromMemberId' => 'XYZ', 'toMemberId' => 'ABC', 'amount' => 3])); $fromMember = $members->with($request->fromMemberId()); $this->assertBalanceAmounts(700, $fromMember); $toMember = $members->with($request->toMemberId()); $this->assertBalanceAmounts(1300, $toMember); }
/** * @param TransferFundsWebResponder $responder * @param TransferFunds $transferFunds */ public function __construct(TransferFundsWebResponder $responder, TransferFunds $transferFunds = null) { $this->responder = $responder; $this->useCase = $transferFunds; $transferFunds && $this->useCase->attach($this); }