/**
  * @param bool $hasPermissionForm
  * @param bool $hasPermissionsForm
  * @param bool $hasPrivilegeForm
  * @param bool $hasPrivilegesForm
  * @param bool $hasRoleForm
  * @param string|null $roleFormName
  * @param string|null $expectedPrefix
  * @dataProvider finishViewDataProvider
  *
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 public function testFinishView($hasPermissionForm = false, $hasPermissionsForm = false, $hasPrivilegeForm = false, $hasPrivilegesForm = false, $hasRoleForm = false, $roleFormName = null, $expectedPrefix = null)
 {
     $this->roleTranslationPrefixResolver->expects($expectedPrefix ? $this->once() : $this->never())->method('getPrefix')->willReturn($expectedPrefix);
     $roleForm = null;
     if ($hasRoleForm) {
         $type = $this->getMock('Symfony\\Component\\Form\\ResolvedFormTypeInterface');
         $type->expects($this->once())->method('getName')->willReturn($roleFormName);
         $formConfig = $this->getMock('Symfony\\Component\\Form\\FormConfigInterface');
         $formConfig->expects($this->once())->method('getType')->willReturn($type);
         $roleForm = $this->getMock('Symfony\\Component\\Form\\FormInterface');
         $roleForm->expects($this->once())->method('getConfig')->willReturn($formConfig);
     }
     $privilegesForm = null;
     if ($hasPrivilegesForm) {
         $privilegesForm = $this->getMock('Symfony\\Component\\Form\\FormInterface');
         $privilegesForm->expects($this->once())->method('getParent')->willReturn($roleForm);
     }
     $privilegeForm = null;
     if ($hasPrivilegeForm) {
         $privilegeForm = $this->getMock('Symfony\\Component\\Form\\FormInterface');
         $privilegeForm->expects($this->once())->method('getParent')->willReturn($privilegesForm);
     }
     $permissionsForm = null;
     if ($hasPermissionsForm) {
         $permissionsForm = $this->getMock('Symfony\\Component\\Form\\FormInterface');
         $permissionsForm->expects($this->once())->method('getParent')->willReturn($privilegeForm);
     }
     $permissionForm = null;
     if ($hasPermissionForm) {
         $permissionForm = $this->getMock('Symfony\\Component\\Form\\FormInterface');
         $permissionForm->expects($this->once())->method('getParent')->willReturn($permissionsForm);
     }
     /** @var FormInterface|\PHPUnit_Framework_MockObject_MockObject $form */
     $form = $this->getMock('Symfony\\Component\\Form\\FormInterface');
     $form->expects($this->once())->method('getParent')->willReturn($permissionForm);
     $formView = new FormView();
     $this->extension->finishView($formView, $form, []);
     if ($expectedPrefix) {
         $this->assertArrayHasKey('translation_prefix', $formView->vars);
         $this->assertEquals($expectedPrefix, $formView->vars['translation_prefix']);
     } else {
         $this->assertArrayNotHasKey('translation_prefix', $formView->vars);
     }
 }