Skip to content
Snippets Groups Projects
Commit 3c51c7eb authored by Patrick Barroca's avatar Patrick Barroca :grin:
Browse files

rel #11947: tests fixtures fix

parent 1300e0de
Branches
Tags
No related merge requests found
......@@ -18,12 +18,22 @@
* along with AFI-OPAC 2.0; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
class CarthameGetServiceTest extends PHPUnit_Framework_TestCase {
public function setUp() {
abstract class CarthameTestCase extends Storm_Test_ModelTestCase {
public function tearDown() {
Class_WebService_SIGB_Carthame::reset();
parent::tearDown();
}
}
class CarthameGetServiceTest extends CarthameTestCase {
public function setUp() {
parent::setUp();
$this->service = Class_WebService_SIGB_Carthame::getService(['url_serveur' => 'http://ifr.ro/webservices/index.php']);
}
/** @test */
public function getServiceShouldCreateAnInstanceOfCarthameService() {
$this->assertInstanceOf('Class_WebService_SIGB_Carthame_Service',
......@@ -37,18 +47,13 @@ class CarthameGetServiceTest extends PHPUnit_Framework_TestCase {
/** @test */
public function getServiceWithoutSchemeShouldAddHttpScheme() {
Class_WebService_SIGB_Carthame::reset();
$this->service = Class_WebService_SIGB_Carthame::getService(['url_serveur' => 'ifr.ro/webservices/index.php']);
$this->assertEquals('http://ifr.ro/webservices/index.php', $this->service->getServerRoot());
}
}
abstract class CarthameTestCase extends Storm_Test_ModelTestCase {
/** @var Storm_Test_ObjectWrapper */
abstract class CarthameOperationTestCase extends CarthameTestCase {
protected $mock_web_client;
/** @var Class_WebService_SIGB_Carthame_Service */
protected $service;
public function setUp() {
......@@ -64,78 +69,7 @@ abstract class CarthameTestCase extends Storm_Test_ModelTestCase {
}
class KarviTest extends Storm_Test_ModelTestCase {
/** @var Storm_Test_ObjectWrapper */
protected $mock_web_client;
/** @var Class_WebService_SIGB_Carthame_Service */
protected $service;
public function setUp() {
parent::setUp();
$this->mock_web_client = Storm_Test_ObjectWrapper::on(new Class_WebService_SimpleWebClient())
->whenCalled('open_url')
->answers('');
$this->service = Class_WebService_SIGB_Carthame::getService(
['url_serveur' => 'http://ifr.ro/webservices/index.php',
'key' => 'MyClientId'])
->setWebClient($this->mock_web_client);
$this->pbarroca = Class_Users::newInstance()
->setLogin('pbarroca')
->setPassword('1974');
$this->_exemplaire_millenium = Class_Exemplaire::newInstanceWithId(123)
->setIdOrigine('Millenium');
}
/** @test */
public function getNoticeRequestShouldContainMyClientId() {
$this->service->getNotice('I86355');
$this->assertQueryContains('MyClientId');
}
/** @test */
public function getEmprunteurRequestShouldContainMyClientId() {
$this->service->getEmprunteur($this->pbarroca);
$this->assertQueryContains('MyClientId');
}
/** @test */
public function reserverExemplaireRequestShouldContainMyClientId() {
$this->service->reserverExemplaire($this->pbarroca,
$this->_exemplaire_millenium,
'Institut F');
$this->assertQueryContains('MyClientId');
}
/** @test */
public function supprimerReservationRequestShouldContainMyClientId() {
$this->service->supprimerReservation($this->pbarroca, '42');
$this->assertQueryContains('MyClientId');
}
/** @test */
public function prolongerPretRequestShouldContainMyClientId() {
$this->service->prolongerPret($this->pbarroca, '42');
$this->assertQueryContains('MyClientId');
}
protected function assertQueryContains($value) {
$query = $this->mock_web_client->getFirstAttributeForLastCallOn('open_url');
$this->assertTrue(false !== strpos($query, $value), $query);
}
}
class CarthameNoticeAlbatorTest extends CarthameTestCase {
class CarthameNoticeAlbatorTest extends CarthameOperationTestCase {
/** @var Class_WebService_SIGB_Notice */
protected $albator;
......@@ -165,7 +99,7 @@ class CarthameNoticeAlbatorTest extends CarthameTestCase {
class CarthameAnonymousNoticeTest extends CarthameTestCase {
class CarthameAnonymousNoticeTest extends CarthameOperationTestCase {
/** @var Class_WebService_SIGB_Notice */
protected $anonymous;
......@@ -258,46 +192,36 @@ class CarthameAnonymousNoticeTest extends CarthameTestCase {
class CarthameEmprunteurPatrickBTest extends CarthameTestCase {
class CarthameEmprunteurPatrickBTest extends CarthameOperationTestCase {
/** @var Class_WebService_SIGB_Emprunteur */
protected $emprunteur;
public function setUp() {
parent::setUp();
$exemplaire = Class_Exemplaire::newInstanceWithId(3,
['id_origine' => 'L8984',
'id_notice' => '123',
'id_bib' => 47]);
Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Exemplaire')
->whenCalled('findFirstBy')->answers(null)
->whenCalled('findFirstBy')
->with(['id_origine' => 'L8984'])
->answers($exemplaire);
$exemplaire = $this->fixture('Class_Exemplaire', ['id' => 3,
'id_origine' => 'L8984',
'id_notice' => '123',
'id_bib' => 47]);
Class_Notice::getLoader()
->newInstanceWithId(123)
->setTitrePrincipal('Harry Potter')
->setAuteurPrincipal('JK Rowling');
$this->fixture('Class_Notice', ['id' => 123,
'titre_principal' => 'Harry Potter',
'auteur_principal' => 'JK Rowling']);
Class_Bib::getLoader()
->newInstanceWithId(47)
->setLibelle('Bucarest');
$this->fixture('Class_Bib', ['id' => 47,
'libelle' => 'Bucarest']);
$this->mock_web_client->whenCalled('open_url')
->with('http://ifr.ro/webservices/index.php?sigb=ktm&version=standalone&action=login&username=pbarroca&password=1974')
->answers(CarthameTestFixtures::createEmprunteurPatrickBLoginXml())
->getWrapper()
->whenCalled('open_url')
->with('http://ifr.ro/webservices/index.php?sigb=ktm&version=standalone&action=accountDetails&userid=3')
->answers(CarthameTestFixtures::createEmprunteurPatrickBXml())
;
$this->emprunteur = $this->service->getEmprunteur(
Class_Users::getLoader()->newInstance()
Class_Users::newInstance()
->setLogin('pbarroca')
->setPassword('1974'));
......@@ -442,12 +366,15 @@ class CarthameEmprunteurPatrickBTest extends CarthameTestCase {
}
class CarthameOperationsTest extends CarthameTestCase {
class CarthameOperationsTest extends CarthameOperationTestCase {
public function setUp() {
parent::setUp();
$this->_exemplaire_millenium = Class_Exemplaire::getLoader()
->newInstanceWithId(123)
->setIdOrigine('Millenium');
$this->_exemplaire_millenium = $this->fixture('Class_Exemplaire',
['id' => 123,
'id_origine' => 'Millenium']);
$this->_user = Class_Users::newInstance()
->setLogin('pbarroca')
->setPassword('1974');
}
......@@ -488,9 +415,7 @@ class CarthameOperationsTest extends CarthameTestCase {
$this->assertEquals(
array('statut' => true, 'erreur' => ''),
$this->service->reserverExemplaire(Class_Users::getLoader()->newInstance()
->setLogin('pbarroca')
->setPassword('1974'),
$this->service->reserverExemplaire($this->_user,
$this->_exemplaire_millenium,
'Cluj-Napoc'));
......@@ -520,10 +445,9 @@ class CarthameOperationsTest extends CarthameTestCase {
</root>');
$this->assertEquals(
array('statut' => false, 'erreur' => 'Réservation impossible. Autorisée seulement sur Iasi,Timisoara'),
$this->service->reserverExemplaire(Class_Users::getLoader()->newInstance()
->setLogin('pbarroca')
->setPassword('1974'),
['statut' => false,
'erreur' => 'Réservation impossible. Autorisée seulement sur Iasi,Timisoara'],
$this->service->reserverExemplaire($this->_user,
$this->_exemplaire_millenium,
'Cluj-Napoc'));
......@@ -559,10 +483,9 @@ class CarthameOperationsTest extends CarthameTestCase {
->beStrict();
$this->assertEquals(
array('statut' => false, 'erreur' => $message),
$this->service->reserverExemplaire(Class_Users::getLoader()->newInstance()
->setLogin('pbarroca')
->setPassword('1974'), $this->_exemplaire_millenium, '1')
['statut' => false, 'erreur' => $message],
$this->service->reserverExemplaire($this->_user,
$this->_exemplaire_millenium, '1')
);
}
......@@ -589,10 +512,8 @@ class CarthameOperationsTest extends CarthameTestCase {
');
$this->assertEquals(
array('statut' => true, 'erreur' => ''),
$this->service->supprimerReservation(Class_Users::getLoader()->newInstance()
->setLogin('pbarroca')
->setPassword('1974'), 'MillRes')
['statut' => true, 'erreur' => ''],
$this->service->supprimerReservation($this->_user, 'MillRes')
);
}
......@@ -613,10 +534,8 @@ class CarthameOperationsTest extends CarthameTestCase {
');
$this->assertEquals(
array('statut' => false, 'erreur' => 'Error from WS'),
$this->service->supprimerReservation(Class_Users::getLoader()->newInstance()
->setLogin('pbarroca')
->setPassword('1974'), 'HarrRes')
['statut' => false, 'erreur' => 'Error from WS'],
$this->service->supprimerReservation($this->_user, 'HarrRes')
);
}
......@@ -636,10 +555,8 @@ class CarthameOperationsTest extends CarthameTestCase {
');
$this->assertEquals(
array('statut' => true, 'erreur' => ''),
$this->service->prolongerPret(Class_Users::getLoader()->newInstance()
->setLogin('pbarroca')
->setPassword('1974'), 'Millenium')
['statut' => true, 'erreur' => ''],
$this->service->prolongerPret($this->_user, 'Millenium')
);
}
......@@ -660,16 +577,83 @@ class CarthameOperationsTest extends CarthameTestCase {
');
$this->assertEquals(
array('statut' => false, 'erreur' => 'Error from WS'),
$this->service->prolongerPret(Class_Users::getLoader()->newInstance()
->setLogin('pbarroca')
->setPassword('1974'), '095124224')
['statut' => false, 'erreur' => 'Error from WS'],
$this->service->prolongerPret($this->_user, '095124224')
);
}
}
class CarthameKarviTest extends CarthameTestCase {
protected $mock_web_client;
protected $service;
public function setUp() {
parent::setUp();
$this->mock_web_client = Storm_Test_ObjectWrapper::on(new Class_WebService_SimpleWebClient())
->whenCalled('open_url')
->answers('');
$this->service = Class_WebService_SIGB_Carthame::getService(
['url_serveur' => 'http://ifr.ro/webservices/index.php',
'key' => 'MyClientId'])
->setWebClient($this->mock_web_client);
$this->_user = Class_Users::newInstance()
->setLogin('pbarroca')
->setPassword('1974');
$this->_exemplaire_millenium = Class_Exemplaire::newInstanceWithId(123)
->setIdOrigine('Millenium');
}
/** @test */
public function getNoticeRequestShouldContainMyClientId() {
$this->service->getNotice('I86355');
$this->assertQueryContains('MyClientId');
}
/** @test */
public function getEmprunteurRequestShouldContainMyClientId() {
$this->service->getEmprunteur($this->_user);
$this->assertQueryContains('MyClientId');
}
/** @test */
public function reserverExemplaireRequestShouldContainMyClientId() {
$this->service->reserverExemplaire($this->_user,
$this->_exemplaire_millenium,
'Institut F');
$this->assertQueryContains('MyClientId');
}
/** @test */
public function supprimerReservationRequestShouldContainMyClientId() {
$this->service->supprimerReservation($this->_user, '42');
$this->assertQueryContains('MyClientId');
}
/** @test */
public function prolongerPretRequestShouldContainMyClientId() {
$this->service->prolongerPret($this->_user, '42');
$this->assertQueryContains('MyClientId');
}
protected function assertQueryContains($value) {
$query = $this->mock_web_client->getFirstAttributeForLastCallOn('open_url');
$this->assertTrue(false !== strpos($query, $value), $query);
}
}
class CarthameTestFixtures {
public static function createEmprunteurPatrickBXml() {
return '<?xml version="1.0"?>
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment