/**
  * 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()));
 }