array ( 'user' => 'admin (1), editor (45)', 'role' => array ( 'authenticated' => 'authenticated', ), ), ); $formStateStub = $this->mockFormState('en', [ 'role' => [ 'authenticated' => 'authenticated', 'anonymous' => 0, 'administrator' => 0, ], ]); $this->assertEquals(array ( 'UserIdPermissionsToRemove' => array ( ), 'UserIdPermissionsToAdd' => array( '0' => '1', '1' => '45', ), 'UserRolePermissionsToRemove' => array ( ), 'aRoleIdPermissionsToAdd' => array ( 0 => 'authenticated', ), ), $this->accessStorage->saveTermPermissions($formStateStub, 1)); $formStateStub = $this->mockFormState('de', [ 'role' => [ 'authenticated' => 'authenticated', 'anonymous' => 0, 'administrator' => 0, ], ]); $this->assertEquals(array ( 'UserIdPermissionsToRemove' => array ( ), 'UserIdPermissionsToAdd' => array( '0' => '1', '1' => '45', ), 'UserRolePermissionsToRemove' => array ( ), 'aRoleIdPermissionsToAdd' => array ( 0 => 'authenticated', ), ), $this->accessStorage->saveTermPermissions($formStateStub, 1)); } private function mockFormState($langcode, $accessOutput) { $formStateStub = $this->getMockBuilder(FormStateInterface::class) ->getMock(); $map = [ [ 'langcode', NULL, [ ['value' => $langcode] ] ], [ 'access', NULL, $accessOutput ] ]; $formStateStub->expects($this->any()) ->method('getValue') ->will($this->returnValueMap($map)); return $formStateStub; } }