public function testDontDecreaseTodays_ButForecast_Purchases() { $purchase_service = new \shina\controlmybudget\PurchaseService($this->data_provider, new Date('2014-08-01')); $purchase = new \shina\controlmybudget\Purchase\Purchase(); $purchase->date = new Date('2014-08-02'); $purchase->place = 'foo'; $purchase->amount = 10; $purchase_service->save($purchase, $this->user); $monthly_goal = new \shina\controlmybudget\MonthlyGoal\MonthlyGoal(); $monthly_goal->month = 8; $monthly_goal->year = 2014; $monthly_goal->amount_goal = 1510; $monthly_goal->events = []; $goalr = new Goalr(new Date('2014-08-02')); $budget_control_service = new \shina\controlmybudget\BudgetControlService($this->purchase_service, $goalr); $this->assertEquals(50, $budget_control_service->getDailyMonthlyBudget($monthly_goal, $this->user)); }
public function testGetForecastAmountByPeriod() { $purchase_service = new \shina\controlmybudget\PurchaseService($this->data_provider, new Date('2014-08-15')); $purchase = new \shina\controlmybudget\Purchase\Purchase(); $purchase->date = new DateTime('2014-08-10'); $purchase->place = 'Zona Sul'; $purchase->amount = 2.1; $purchase_service->save($purchase, $this->user); $purchase = new \shina\controlmybudget\Purchase\Purchase(); $purchase->date = new DateTime('2014-08-15'); $purchase->place = 'Natalandia'; $purchase->amount = 300; $purchase_service->save($purchase, $this->user); $purchase = new \shina\controlmybudget\Purchase\Purchase(); $purchase->date = new DateTime('2014-08-18'); $purchase->place = 'Casa do carnaval'; $purchase->amount = 54.7; $purchase_service->save($purchase, $this->user); $amount = $purchase_service->getForecastAmountByPeriod(new DateTime('2014-08-01'), new DateTime('2014-08-31'), $this->user); $this->assertEquals(54.7, $amount); }