public function it_returns_predicted_balance_for_future_day(Revenue $revenue, Expense $expense, Inflow $inflow, Outflow $outflow, Expense $expense1) { $date = new DateTime('+15 days'); $inflow->getProbability()->shouldBeCalled()->willReturn(0.73); $inflow->getDate()->shouldBeCalled()->willReturn(new DateTime('+2 days')); $inflow->getValue()->shouldBeCalled()->willReturn(120.0); $revenue->getInflows()->shouldBeCalled()->willReturn([$inflow]); $outflow->getProbability()->shouldBeCalled()->willReturn(0.83); $outflow->getDate()->shouldBeCalled()->willReturn(new DateTime('+3 days')); $outflow->getValue()->shouldBeCalled()->willReturn(50.0); $expense->getOutflows()->shouldBeCalled()->willReturn([$outflow]); $revenue->addInflow($inflow); $expense->addOutflow($outflow); $this->addRevenue($revenue)->addExpense($expense); $this->getBalancePrediction($date)->shouldReturn(49.0); }