public function testGetItemsThrowsExceptionWhenNotInstanceOfAbstractToggleMenu() { list($register, $cfg, $container) = $this->getMocks(); $instance = new ToggleMenuHandler($register, $cfg, $container); $mockConfig = m::mock('Xpressengine\\Config\\ConfigEntity'); $mockConfig->shouldReceive('get')->once()->with('activate', [])->andReturn(['someTypemenu/xe@somemenu1', 'someTypemenu/xe@somemenu2']); $cfg->shouldReceive('getOrNew')->once()->with('*****@*****.**')->andReturn($mockConfig); $register->shouldReceive('get')->once()->andReturn(['someTypemenu/xe@somemenu1' => ItemClass::class, 'someTypemenu/xe@somemenu2' => NonItemClass::class, 'someTypemenu/xe@somemenu3' => ItemClass::class]); $container->shouldReceive('make')->once()->with(ItemClass::class)->andReturn(new ItemClass()); $container->shouldReceive('make')->once()->with(NonItemClass::class)->andReturn(new NonItemClass()); try { $instance->getItems('someType', 'someInstance'); $this->assertTrue(false); } catch (\Exception $e) { $this->assertInstanceOf('Xpressengine\\ToggleMenu\\Exceptions\\WrongInstanceException', $e); } }
public function testGetItemsThrowsExceptionWhenNotInstanceOfItemInterface() { list($register, $cfg) = $this->getMocks(); $instance = new ToggleMenuHandler($register, $cfg); $mockConfig = m::mock('Xpressengine\\Config\\ConfigEntity'); $mockConfig->shouldReceive('get')->once()->with('activate', [])->andReturn(['someTypemenu/xe@somemenu1', 'someTypemenu/xe@somemenu2']); $cfg->shouldReceive('get')->once()->with('toggleMenu@someType')->andReturnNull(); $cfg->shouldReceive('set')->once()->with('toggleMenu@someType', []); $cfg->shouldReceive('get')->once()->with('*****@*****.**')->andReturnNull(); $cfg->shouldReceive('set')->once()->with('*****@*****.**', ['activate' => []])->andReturn($mockConfig); $register->shouldReceive('get')->once()->andReturn(['someTypemenu/xe@somemenu1' => ItemClass::class, 'someTypemenu/xe@somemenu2' => NonItemClass::class, 'someTypemenu/xe@somemenu3' => ItemClass::class]); try { $instance->getItems('someType', 'someInstance'); $this->assertTrue(false); } catch (\Exception $e) { $this->assertInstanceOf('Xpressengine\\ToggleMenu\\Exceptions\\InvalidClassException', $e); } }