getBudget()); self::assertEquals(0, $entityWithBudget->getTimeBudget()); self::assertNull($entityWithBudget->getBudgetType()); self::assertFalse($entityWithBudget->isMonthlyBudget()); self::assertFalse($entityWithBudget->hasBudget()); self::assertFalse($entityWithBudget->hasTimeBudget()); $entityWithBudget->setBudget(12345.67); self::assertEquals(12345.67, $entityWithBudget->getBudget()); self::assertTrue($entityWithBudget->hasBudget()); self::assertFalse($entityWithBudget->hasTimeBudget()); $entityWithBudget->setTimeBudget(937321); self::assertEquals(937321, $entityWithBudget->getTimeBudget()); self::assertTrue($entityWithBudget->hasTimeBudget()); $entityWithBudget->setBudgetType('month'); self::assertTrue($entityWithBudget->isMonthlyBudget()); $entityWithBudget->setBudgetType(null); self::assertFalse($entityWithBudget->isMonthlyBudget()); try { $entityWithBudget->setBudgetType('foo'); $this->fail('Budget type only allows "month"'); } catch (\InvalidArgumentException $e) { self::assertEquals('Unknown budget type: foo', $e->getMessage()); } } }