public function WorkspaceManagerTest::testSetActiveWorkspace in Multiversion 8
Tests that setActiveWorkspace() sets the workspace on the negotiator.
File
- tests/
src/ Unit/ WorkspaceManagerTest.php, line 201
Class
- WorkspaceManagerTest
- @coversDefaultClass \Drupal\multiversion\Workspace\WorkspaceManager @group multiversion
Namespace
Drupal\Tests\multiversion\UnitCode
public function testSetActiveWorkspace() {
// Create the request we will use.
$request = $this
->getMock('Symfony\\Component\\HttpFoundation\\Request');
$this->requestStack
->method('getCurrentRequest')
->willReturn($request);
// Create the workspace that we will set.
$workspace = $this
->getMockBuilder('Drupal\\multiversion\\Entity\\Workspace')
->disableOriginalConstructor()
->getMock();
$workspace
->expects($this
->any())
->method("isPublished")
->willReturn(TRUE);
$workspace
->expects($this
->any())
->method("access")
->willReturn(TRUE);
// Spy on the negotiator and stub the applies and persist methods.
$negotiator = $this
->prophesize('Drupal\\multiversion\\Workspace\\DefaultWorkspaceNegotiator');
$negotiator
->applies(Argument::any())
->willReturn(TRUE);
$negotiator
->persist(Argument::any())
->will(function () {
return $this;
});
// Create the workspace manager.
$workspace_manager = new WorkspaceManager($this->requestStack, $this->entityTypeManager, $this->currentUser, $this->logger);
$workspace_manager
->addNegotiator($negotiator
->reveal(), 1);
// Execute the code under test.
$workspace_manager
->setActiveWorkspace($workspace);
// Ensure persist with the workspace was called on the negotiator.
$negotiator
->persist($workspace)
->shouldHaveBeenCalled();
}