/** * Test menu construction * * @cover NavbarService::__construct() * @cover NavbarService::pushMenu() * @cover NavbarService::pushSubmenu() */ public function testMenuBuilding() { $navbar = new Navbar(); $navbarService = new NavbarService(); $navbarService->addNavbar($navbar); $menus = array(new Menu('Menu ' . uniqid()), new Menu('Menu ' . uniqid())); $this->assertEquals(array(), $navbar->getMenuList()); $this->assertSame($navbarService, $navbarService->pushSubmenu($menus[0])); $navbarList = $navbarService->getNavbars(); $this->assertEquals(1, count($navbarList)); $this->assertEquals(1, count($navbar->getMenuList())); $this->assertEquals('__main__', array_keys($navbarList)[0]); $this->assertEquals(array(), $menus[0]->getSubmenu()); $this->assertSame($navbarService, $navbarService->pushSubmenu(new Menu('Submenu ' . uniqid()))); $this->assertEquals(1, count($menus[0]->getSubmenu())); $this->assertEquals(array(), $menus[1]->getSubmenu()); $this->assertSame($navbarService, $navbarService->pushMenu($menus[1])); $this->assertEquals(2, count($navbar->getMenuList())); $navbarService->pushSubmenu(new Menu('Submenu ' . uniqid())); $navbarService->pushSubmenu(new Menu('Submenu ' . uniqid())); $this->assertEquals(1, count($menus[0]->getSubmenu())); $this->assertEquals(2, count($menus[1]->getSubmenu())); $navbarService = new NavbarService(); $navbarService->pushMenu(new Menu('Menu ' . uniqid())); $this->assertEquals(1, count($navbarService->getNavbars())); $this->assertEquals('__main__', array_keys($navbarService->getNavbars())[0]); $navbarService = new NavbarService(); $navbarTitle = 'Navbar ' . uniqid(); $navbarService->pushMenu(new Menu('Menu ' . uniqid()), $navbarTitle)->pushMenu(new Menu('Menu ' . uniqid()), '__main__')->pushMenu(new Menu('Menu ' . uniqid()), $navbarTitle); $this->assertEquals(2, count($navbarService->getNavbars())); $this->assertEquals($navbarTitle, array_keys($navbarService->getNavbars())[0]); $this->assertEquals('__main__', array_keys($navbarService->getNavbars())[1]); $this->assertEquals(2, count($navbarService->getNavbar($navbarTitle)->getMenuList())); $this->assertEquals(1, count($navbarService->getNavbar('__main__')->getMenuList())); }