public function nodesCanHaveCustomImplementationClass()
{
$rootNode = $this->context->getRootNode();
$testingNodeType = $this->nodeTypeManager->getNodeType('Neos.ContentRepository.Testing:NodeTypeWithReferences');
$happyNodeType = $this->nodeTypeManager->getNodeType('Neos.ContentRepository.Testing:HappyTestingNode');
$headlineNodeType = $this->nodeTypeManager->getNodeType('Neos.ContentRepository.Testing:Headline');
$fooNode = $rootNode->createNode('foo', $testingNodeType);
$happyNode = $fooNode->createNode('bar', $happyNodeType);
$bazNode = $happyNode->createNode('baz', $headlineNodeType);
$this->assertNotInstanceOf(HappyNode::class, $fooNode);
$this->assertInstanceOf(HappyNode::class, $happyNode);
$this->assertNotInstanceOf(HappyNode::class, $bazNode);
$this->assertEquals('bar claps hands!', $happyNode->clapsHands());
}