5use PHPUnit\Framework\TestCase;
 
   11        $underlying = $this->getMockBuilder(\
ILIAS\
UI\Implementation\Render\Loader::class)
 
   12            ->setMethods([
"getRendererFor", 
"getRendererFactoryFor"])
 
   15        $renderer = new \stdClass();
 
   16        $component = $this->getMockBuilder(\
ILIAS\
UI\Component\Component::class)->getMock();
 
   17        $context = [new \ILIAS\UI\Component\Test\TestComponent(
"foo")];
 
   19            ->expects($this->once())
 
   20            ->method(
"getRendererFor")
 
   22            ->willReturn($renderer);
 
   24        $l = new \ILIAS\UI\Implementation\Render\LoaderCachingWrapper($underlying);
 
   25        $r = $l->getRendererFor($component, 
$context);
 
   27        $this->assertSame($renderer, $r);
 
   32        $underlying = $this->getMockBuilder(\
ILIAS\
UI\Implementation\Render\Loader::class)
 
   33            ->setMethods([
"getRendererFor", 
"getRendererFactoryFor"])
 
   36        $renderer = new \stdClass();
 
   37        $component = $this->getMockBuilder(\
ILIAS\
UI\Component\Component::class)->getMock();
 
   39            ->expects($this->once())
 
   40            ->method(
"getRendererFor")
 
   41            ->with($component, [])
 
   42            ->willReturn($renderer);
 
   44        $l = new \ILIAS\UI\Implementation\Render\LoaderCachingWrapper($underlying);
 
   45        $r1 = $l->getRendererFor($component, []);
 
   46        $r2 = $l->getRendererFor($component, []);
 
   48        $this->assertSame($renderer, $r1);
 
   49        $this->assertSame($renderer, $r2);
 
   54        $underlying = $this->getMockBuilder(\
ILIAS\
UI\Implementation\Render\Loader::class)
 
   55            ->setMethods([
"getRendererFor", 
"getRendererFactoryFor"])
 
   58        $renderer1 = new \stdClass();
 
   59        $renderer2 = new \stdClass();
 
   60        $c1 = $this->getMockBuilder(\
ILIAS\
UI\Component\Component::class)->getMock();
 
   61        $c2 = new \ILIAS\UI\Component\Test\TestComponent(
"foo");
 
   63            ->expects($this->exactly(2))
 
   64            ->method(
"getRendererFor")
 
   65            ->withConsecutive([$c1, [] ], [$c1, [$c2]])
 
   66            ->will($this->onConsecutiveCalls($renderer1, $renderer2));
 
   68        $l = new \ILIAS\UI\Implementation\Render\LoaderCachingWrapper($underlying);
 
   69        $r1 = $l->getRendererFor($c1, []);
 
   70        $r2 = $l->getRendererFor($c1, [$c2]);
 
   71        $r3 = $l->getRendererFor($c1, [$c2]);
 
   72        $r4 = $l->getRendererFor($c1, []);
 
   74        $this->assertSame($renderer1, $r1);
 
   75        $this->assertSame($renderer2, $r2);
 
   76        $this->assertSame($renderer2, $r3);
 
   77        $this->assertSame($renderer1, $r4);
 
   82        $underlying = $this->getMockBuilder(\
ILIAS\
UI\Implementation\Render\Loader::class)
 
   83            ->setMethods([
"getRendererFor", 
"getRendererFactoryFor"])
 
   86        $c1 = $this->createMock(\
ILIAS\
UI\Component\Component::class);
 
   90            ->expects($this->exactly(1))
 
   91            ->method(
"getRendererFactoryFor")
 
   95        $l = new \ILIAS\UI\Implementation\Render\LoaderCachingWrapper($underlying);
 
   97        $this->assertSame(
$factory, $l->getRendererFactoryFor($c1));
 
An exception for terminatinating execution or to throw for unit testing.
test_forwards_from_underlying()
test_passthrough_getRendererFactory()
test_caching_respects_contexts()
Class ChatMainBarProvider \MainMenu\Provider.