getMenu()); self::assertNotNull($sut->getAdminMenu()); self::assertNotNull($sut->getAppsMenu()); self::assertNotNull($sut->getSystemMenu()); self::assertNull($sut->getTimesheetMenu()); self::assertNull($sut->getInvoiceMenu()); self::assertNull($sut->getReportingMenu()); $timesheet = new MenuItemModel('times', 'timesheet'); $sut->getMenu()->addChild($timesheet); self::assertNotNull($sut->getTimesheetMenu()); self::assertSame($timesheet, $sut->getTimesheetMenu()); $invoice = new MenuItemModel('invoices', 'invoice'); $sut->getMenu()->addChild($invoice); self::assertNotNull($sut->getInvoiceMenu()); self::assertSame($invoice, $sut->getInvoiceMenu()); self::assertNull($sut->findById('reporting')); self::assertNull($sut->findById('foo')); self::assertNull($sut->findById('bar')); $reporting = new MenuItemModel('reporting', 'reporting'); $sut->getMenu()->addChild($reporting); $reporting->addChild(new MenuItemModel('foo', 'foo')); $reporting->addChild(new MenuItemModel('bar', 'bar')); self::assertNotNull($sut->getReportingMenu()); self::assertSame($reporting, $sut->getReportingMenu()); self::assertSame($reporting, $sut->findById('reporting')); self::assertNotNull($sut->findById('foo')); self::assertNotNull($sut->findById('bar')); } }