getQuery()); self::assertNull($sut->getCustomer()); self::assertNull($sut->getDueDate()); self::assertNull($sut->getCalculator()); self::assertNull($sut->getNumberGenerator()); self::assertEmpty($sut->getEntries()); self::assertIsArray($sut->getEntries()); self::assertNull($sut->getTemplate()); self::assertInstanceOf(\DateTime::class, $sut->getInvoiceDate()); } public function testSetter() { $sut = new InvoiceModel(); $query = new InvoiceQuery(); self::assertInstanceOf(InvoiceModel::class, $sut->setQuery($query)); self::assertSame($query, $sut->getQuery()); $customer = new Customer(); self::assertInstanceOf(InvoiceModel::class, $sut->setCustomer($customer)); self::assertSame($customer, $sut->getCustomer()); $calculator = new DefaultCalculator(); self::assertInstanceOf(InvoiceModel::class, $sut->setCalculator($calculator)); self::assertSame($calculator, $sut->getCalculator()); $entries = [new Timesheet()]; self::assertInstanceOf(InvoiceModel::class, $sut->setEntries($entries)); self::assertSame($entries, $sut->getEntries()); $generator = new DateNumberGenerator(); self::assertInstanceOf(InvoiceModel::class, $sut->setNumberGenerator($generator)); self::assertSame($generator, $sut->getNumberGenerator()); $template = new InvoiceTemplate(); self::assertNull($sut->getDueDate()); self::assertInstanceOf(InvoiceModel::class, $sut->setTemplate($template)); self::assertSame($template, $sut->getTemplate()); self::assertInstanceOf(\DateTime::class, $sut->getDueDate()); } }