Fix Controller testes

This commit is contained in:
Nicolas Le Goff
2011-12-28 12:54:03 +01:00
parent 19d5e43283
commit adfd069481
3 changed files with 19 additions and 185 deletions

View File

@@ -11,7 +11,6 @@
require_once __DIR__ . '/../../PhraseanetWebTestCaseAuthenticatedAbstract.class.inc';
use Doctrine\Common\DataFixtures\Loader;
use Alchemy\Phrasea\Helper;
use Alchemy\Phrasea\RouteProcessor as routeProcessor;
@@ -31,6 +30,7 @@ class WorkZoneTest extends PhraseanetWebTestCaseAuthenticatedAbstract
{
parent::setUp();
$this->client = $this->createClient();
$this->purgeDatabase();
}
public function createApplication()
@@ -41,7 +41,7 @@ class WorkZoneTest extends PhraseanetWebTestCaseAuthenticatedAbstract
public function testRootGet()
{
$this->loadOneWZ();
$this->insertOneWZ();
$route = "/WorkZone/";
@@ -52,45 +52,4 @@ class WorkZoneTest extends PhraseanetWebTestCaseAuthenticatedAbstract
$this->assertEquals(200, $response->getStatusCode());
}
protected function loadOneWZ()
{
try
{
$currentUser = self::$user;
$altUser = self::$user_alt1;
//add one basket
$basket = new PhraseaFixture\Basket\LoadOneBasket();
$basket->setUser($currentUser);
//add one story
$story = new PhraseaFixture\Story\LoadOneStory();
$story->setUser($currentUser);
$story->setRecord(self::$record_1);
//add a validation session initiated by alt user
$validationSession = new PhraseaFixture\ValidationSession\LoadOneValidationSession();
$validationSession->setUser($altUser);
$loader = new Loader();
$loader->addFixture($basket);
$loader->addFixture($story);
$loader->addFixture($validationSession);
$this->insertFixtureInDatabase($loader);
//add current user as participant
$validationParticipant = new PhraseaFixture\ValidationParticipant\LoadParticipantWithSession();
$validationParticipant->setSession($validationSession->validationSession);
$validationParticipant->setUser($currentUser);
$loader = new Loader();
$loader->addFixture($validationParticipant);
$this->insertFixtureInDatabase($loader);
}
catch (\Exception $e)
{
$this->fail($e->getMessage());
}
return;
}
}

View File

@@ -11,8 +11,6 @@
require_once __DIR__ . '/../../PhraseanetWebTestCaseAuthenticatedAbstract.class.inc';
use Doctrine\Common\DataFixtures\Loader;
use PhraseaFixture\Basket as MyFixture;
use Alchemy\Phrasea\Helper;
use Alchemy\Phrasea\RouteProcessor as routeProcessor;
@@ -26,14 +24,13 @@ class basketTest extends PhraseanetWebTestCaseAuthenticatedAbstract
{
protected $client;
protected $loader;
protected static $need_records = 2;
public function setUp()
{
parent::setUp();
$this->client = $this->createClient();
$this->loader = new Loader();
$this->purgeDatabase();
}
public function createApplication()
@@ -161,7 +158,7 @@ class basketTest extends PhraseanetWebTestCaseAuthenticatedAbstract
$em->flush();
$route = sprintf(
"/baskets/%s/%s/delete/", $basket->getId(), $basket_element->getId()
"/baskets/%s/delete/%s/", $basket->getId(), $basket_element->getId()
);
$crawler = $this->client->request('POST', $route);
@@ -199,7 +196,7 @@ class basketTest extends PhraseanetWebTestCaseAuthenticatedAbstract
$em->flush();
$route = sprintf(
"/baskets/%s/%s/delete/", $basket->getId(), $basket_element->getId()
"/baskets/%s/delete/%s/", $basket->getId(), $basket_element->getId()
);
$crawler = $this->client->request(
@@ -498,11 +495,11 @@ class basketTest extends PhraseanetWebTestCaseAuthenticatedAbstract
*/
public function testRemoveBasket()
{
$this->insertOneBasketEnv();
$basket = $this->insertOneBasketEnv();
$em = self::$core->getEntityManager();
/* @var $em \Doctrine\ORM\EntityManager */
$basket = $em->find("Entities\Basket", 1);
$basket = $em->find("Entities\Basket", $basket->getId());
$em->remove($basket);
@@ -542,79 +539,4 @@ class basketTest extends PhraseanetWebTestCaseAuthenticatedAbstract
$this->assertEquals(0, $count);
}
/**
*
* @return \Entities\Basket
*/
protected function insertOneBasket()
{
$basketFixture = new MyFixture\LoadOneBasket();
$basketFixture->setUser(self::$user);
$this->loader->addFixture($basketFixture);
$this->insertFixtureInDatabase($this->loader);
$query = self::$core->getEntityManager()->createQuery(
'SELECT COUNT(b.id) FROM \Entities\Basket b'
);
$count = $query->getSingleScalarResult();
$this->assertEquals(1, $count);
return $basketFixture->basket;
}
/**
*
* @return \Entities\Basket
*/
protected function insertOneBasketEnv()
{
$em = self::$core->getEntityManager();
/* @var $em \Doctrine\ORM\EntityManager */
$basketFixture = new MyFixture\LoadOneBasketEnv();
$basketFixture->setUser(self::$user);
$basketFixture->addParticipant(self::$user_alt1);
$basketFixture->addParticipant(self::$user_alt2);
$basketFixture->addBasketElement(self::$record_1);
$basketFixture->addBasketElement(self::$record_2);
$this->loader->addFixture($basketFixture);
$this->insertFixtureInDatabase($this->loader);
$query = $em->createQuery(
'SELECT COUNT(b.id) FROM \Entities\Basket b'
);
$count = $query->getSingleScalarResult();
$this->assertEquals(1, $count);
$query = $em->createQuery(
'SELECT COUNT(v.id) FROM \Entities\ValidationParticipant v'
);
$count = $query->getSingleScalarResult();
$this->assertEquals(2, $count);
$query = $em->createQuery(
'SELECT COUNT(v.id) FROM \Entities\ValidationSession v'
);
$count = $query->getSingleScalarResult();
$this->assertEquals(1, $count);
return $basketFixture->basket;
}
}

View File

@@ -26,20 +26,19 @@ class storyTest extends PhraseanetWebTestCaseAuthenticatedAbstract
{
protected $client;
protected $loader;
/**
*
* @var \record_adapter
*/
protected static $story;
protected static $need_story = true;
protected static $need_records = 2;
public function setUp()
{
parent::setUp();
$this->client = $this->createClient();
$this->loader = new Loader();
$this->purgeDatabase();
}
public function createApplication()
@@ -47,14 +46,6 @@ class storyTest extends PhraseanetWebTestCaseAuthenticatedAbstract
return require __DIR__ . '/../../../Alchemy/Phrasea/Application/Prod.php';
}
public static function tearDownAfterClass()
{
if (self::$story instanceof \record_adapter)
{
self::$story->delete();
}
}
public function testRootPost()
{
$route = "/story/";
@@ -133,7 +124,7 @@ class storyTest extends PhraseanetWebTestCaseAuthenticatedAbstract
public function testByIds()
{
$story = $this->getStory();
$story = self::$story_1;
$route = sprintf("/story/%d/%d/", $story->get_sbas_id(), $story->get_record_id());
@@ -146,7 +137,7 @@ class storyTest extends PhraseanetWebTestCaseAuthenticatedAbstract
public function testAddElementsToStory()
{
$story = $this->getStory();
$story = self::$story_1;
$route = sprintf("/story/%s/%s/addElements/", $story->get_sbas_id(), $story->get_record_id());
@@ -163,12 +154,12 @@ class storyTest extends PhraseanetWebTestCaseAuthenticatedAbstract
$this->assertEquals(302, $response->getStatusCode());
$this->assertEquals(2, self::$story->get_children()->get_count());
$this->assertEquals(2, self::$story_1->get_children()->get_count());
}
public function testAddElementsToStoryJSON()
{
$story = $this->getStory();
$story = self::$story_1;
$route = sprintf("/story/%s/%s/addElements/", $story->get_sbas_id(), $story->get_record_id());
@@ -187,12 +178,12 @@ class storyTest extends PhraseanetWebTestCaseAuthenticatedAbstract
$this->assertEquals(200, $response->getStatusCode());
$this->assertEquals(2, self::$story->get_children()->get_count());
$this->assertEquals(2, self::$story_1->get_children()->get_count());
}
public function testRemoveElementFromStory()
{
$story = $this->getStory();
$story = self::$story_1;
$records = array(
self::$record_1,
@@ -232,13 +223,13 @@ class storyTest extends PhraseanetWebTestCaseAuthenticatedAbstract
}
$n++;
$this->assertEquals($totalRecords - $n, self::$story->get_children()->get_count());
$this->assertEquals($totalRecords - $n, self::$story_1->get_children()->get_count());
}
}
public function testAttachStoryToWZ()
{
$story = $this->getStory();
$story = self::$story_1;
$goodRoute = sprintf("/story/%s/%s/attach/", $story->get_sbas_id(), $story->get_record_id());
$badRoute = sprintf("/story/%s/%s/attach/", self::$record_1->get_base_id(), self::$record_1->get_record_id());
@@ -297,7 +288,7 @@ class storyTest extends PhraseanetWebTestCaseAuthenticatedAbstract
public function testDetachStoryFromWZ()
{
$story = $this->getStory();
$story = self::$story_1;
$route = sprintf("/story/%s/%s/detach/", $story->get_sbas_id(), $story->get_record_id());
//story not yet Attched
@@ -350,43 +341,5 @@ class storyTest extends PhraseanetWebTestCaseAuthenticatedAbstract
$this->assertEquals(200, $response->getStatusCode());
}
/**
* @return \record_adapter
*/
protected function getStory()
{
if (self::$story instanceof \record_adapter)
return self::$story;
$collections = self::$core->getAuthenticatedUser()
->ACL()
->get_granted_base(array('canaddrecord'));
$collection = array_shift($collections);
$crawler = $this->client->request(
'POST', '/story/', array(
'base_id' => $collection->get_base_id(),
'name' => 'test story',
'description' => 'test_description'), array(), array(
"HTTP_ACCEPT" => "application/json")
);
$response = $this->client->getResponse();
$response = json_decode($response->getContent());
if (!$response->success)
{
$this->fail("Cannot create story");
}
$sbasId = $response->story->sbas_id;
$recordId = $response->story->record_id;
self::$story = new \record_adapter($sbasId, $recordId);
return self::$story;
}
}