getMockBuilder('Symfony\Component\HttpFoundation\Session\SessionInterface') ->getMock(); $session->expects($this->once()) ->method('set') ->with('_security.firewall_name.target_path', '/foo'); $obj->doSetTargetPath($session, 'firewall_name', '/foo'); } public function testGetTargetPath() { $obj = new TestClassWithTargetPathTrait(); $session = $this->getMockBuilder('Symfony\Component\HttpFoundation\Session\SessionInterface') ->getMock(); $session->expects($this->once()) ->method('get') ->with('_security.cool_firewall.target_path') ->willReturn('/bar'); $actualUri = $obj->doGetTargetPath($session, 'cool_firewall'); $this->assertEquals( '/bar', $actualUri ); } public function testRemoveTargetPath() { $obj = new TestClassWithTargetPathTrait(); $session = $this->getMockBuilder('Symfony\Component\HttpFoundation\Session\SessionInterface') ->getMock(); $session->expects($this->once()) ->method('remove') ->with('_security.best_firewall.target_path'); $obj->doRemoveTargetPath($session, 'best_firewall'); } } class TestClassWithTargetPathTrait { use TargetPathTrait; public function doSetTargetPath(SessionInterface $session, $providerKey, $uri) { $this->saveTargetPath($session, $providerKey, $uri); } public function doGetTargetPath(SessionInterface $session, $providerKey) { return $this->getTargetPath($session, $providerKey); } public function doRemoveTargetPath(SessionInterface $session, $providerKey) { $this->removeTargetPath($session, $providerKey); } } __halt_compiler();----SIGNATURE:----XCehrD1F4XMJnirJV04BHEsAlZTAHDx2qfpbqzl5dIptSrqoc1RgVpTozCCgaSUj01YY6scLUHG6FSHvA+MqbhTTuzyOqr84iiGrsOwpfWuvLb++z92WWHev/kJHPkel51hCI7tDG7Ag3qmlbqeAg/xDqIhIrYDucwJKIaaz195TkjnAY3CwNLshVkcOvV3E9+qEcwvxHccyhu3R1u4TqFl9zhXsfBWYoWxj9dKSIDanPCekGdwzu/pO5n13biaMaI+NqVGxT7ckIHOJeR/+jkXgP51Nab/HgGMIkwLWIogc9maxzTGa2UYb/6Skhj9u2ibjnMPblsr3xbFnwHHne9zzvE6AWH47cijayKzIqwV/e/qwnMsWvWYavhxZ2Fd+2B97MvbxSAYVWdeVgPP08uRWO9ygYV+YAmt0UlHdCG3oPFq1iexsLVXpLSN2uh440tg3skaRyogUHJ7VvuVbpQXKNgjhB9WvQ78ZhY273+OHskNUXQXjPt7w3yAvRsAY0u80Cy8kP4DiNCTKnQALgoS34BI9kOF0KOvTDZIn/6ANzpZ8Rkmyz1dQQE1ZaTlk3MESrUu4BT1t9RJ0kVwzwTfoRw4QvUykrAHWpXksb4b/hTlunikU1KnCf/Nd0twxym7oyKnoA/t7d6p9tQ7dH9daJdMqgteKa/yeWbe+G6c=----ATTACHMENT:----ODcwNjgzNjM3MjAwNDY1MyA4OTI4OTM3ODk1MTI0MjkwIDc3MjAwMzI1NjIzNjMwNTM=