/**
  * Assert that user have custom role.
  *
  * @param User $user
  * @param AdminAuthLogin $adminAuth
  * @param Dashboard $dashboard
  * @param CatalogCategoryIndex $categoryIndex
  * @param User $customAdmin [optional]
  * @return void
  */
 public function processAssert(User $user, AdminAuthLogin $adminAuth, Dashboard $dashboard, CatalogCategoryIndex $categoryIndex, User $customAdmin = null)
 {
     $adminUser = $customAdmin === null ? $user : $customAdmin;
     $adminPanelHeader = $dashboard->getAdminPanelHeader();
     if ($adminPanelHeader->isVisible()) {
         $adminPanelHeader->logOut();
     }
     $adminAuth->getLoginBlock()->loginToAdminPanel($adminUser->getData());
     $role = $user->getDataFieldConfig('role_id')['source']->getRole();
     $menuItems = $this->getMenuItems($role);
     foreach ($menuItems as $item) {
         \PHPUnit_Framework_Assert::assertTrue($adminPanelHeader->checkMenu(ucfirst($item)), "Menu {$item} is absent on top menu.");
     }
     // Check access denied message on category page.
     $categoryIndex->open();
     \PHPUnit_Framework_Assert::assertTrue($categoryIndex->getContentBlock()->checkAccessDeniedMessage());
 }