Browse Source

Début d'écriture de tests sur ElementSearcher.

bastien 12 years ago
parent
commit
ee463864f3

+ 1 - 1
src/Muzich/CoreBundle/Repository/ElementRepository.php View File

@@ -62,7 +62,7 @@ class ElementRepository extends EntityRepository
62 62
     // Ajout du filtre limitant au réseau personel si c'est le cas
63 63
     $where_network = '';
64 64
     if ($searcher->getNetwork() == ElementSearcher::NETWORK_PERSONAL)
65
-    {  
65
+    {
66 66
       $join_personal = 
67 67
        " LEFT JOIN eu.followers_users f"
68 68
       ." LEFT JOIN g.followers gf"

+ 3 - 1
src/Muzich/CoreBundle/Searcher/ElementSearcher.php View File

@@ -164,8 +164,10 @@ class ElementSearcher extends Searcher implements SearcherInterface
164 164
 
165 165
   /**
166 166
    * Retourne les elements correspondant a la recherche
167
-   *
167
+   * user_id: Identifiant de celui qui navigue
168
+   * 
168 169
    * @param Registry $doctrine
170
+   * @param int $user_id
169 171
    * @return collection
170 172
    */
171 173
   public function getElements(Registry $doctrine, $user_id)

+ 87 - 0
src/Muzich/CoreBundle/Tests/Searcher/ElementSearcherTest.php View File

@@ -0,0 +1,87 @@
1
+<?php
2
+
3
+namespace Muzich\CoreBundle\Tests\Searcher;
4
+
5
+use Muzich\CoreBundle\lib\UnitTest;
6
+use Muzich\CoreBundle\Searcher\ElementSearcher;
7
+
8
+class ElementSearcherTest extends UnitTest
9
+{  
10
+  public function testInit()
11
+  {
12
+    $es = new ElementSearcher();
13
+    $es->init($ia = array(
14
+        'network'   => ElementSearcher::NETWORK_PERSONAL, 
15
+        'tags'      => array(1, 2, 6), 
16
+        'count'     => 20, 
17
+        'user_id'   => 185, 
18
+        'group_id'  => null, 
19
+        'favorite'  => false
20
+    ));
21
+
22
+    $this->assertEquals($ia, $es->getParams());
23
+  }
24
+  
25
+  public function testUpdate()
26
+  {
27
+    $es = new ElementSearcher();
28
+    $es->init($ia = array(
29
+        'network'   => ElementSearcher::NETWORK_PERSONAL, 
30
+        'tags'      => array(1, 2, 6), 
31
+        'count'     => 20, 
32
+        'user_id'   => 185, 
33
+        'group_id'  => null, 
34
+        'favorite'  => false
35
+    ));
36
+    $es->init($ua = array(
37
+        'network'   => ElementSearcher::NETWORK_PUBLIC, 
38
+        'tags'      => array(5, 8, 123), 
39
+        'count'     => 21, 
40
+        'user_id'   => 115, 
41
+        'group_id'  => null, 
42
+        'favorite'  => false
43
+    ));
44
+
45
+    $this->assertEquals($ua, $es->getParams());
46
+  }
47
+  
48
+  public function testGetElements()
49
+  {
50
+    $r = $this->getDoctrine();
51
+    $bux = $r->getRepository('MuzichCoreBundle:User')
52
+      ->findOneByUsername('bux')
53
+    ;
54
+    
55
+    /*
56
+     * Première passe: On check que la recherche nous retourne bien les 
57
+     * elements de jean
58
+     */
59
+    $jean = $r->getRepository('MuzichCoreBundle:User')
60
+      ->findOneByUsername('jean')
61
+    ;
62
+    $es = new ElementSearcher();
63
+    $es->init(array(
64
+        'user_id'   => $jean->getId(),
65
+        'count'     => 20
66
+    ));
67
+    
68
+    // On récupére avec un requte standart ce que devra retourner l'objet de
69
+    // recherche
70
+    $query_results = $r->getEntityManager()
71
+      ->createQuery("SELECT e
72
+      FROM MuzichCoreBundle:Element e
73
+      WHERE e.owner = :suid
74
+      ORDER BY e.created DESC")
75
+      ->setParameter('suid', $jean->getId())
76
+      ->setMaxResults(20)
77
+      ->getResult()
78
+    ;
79
+    
80
+    // Les résultats de la recherche
81
+    $searcher_results = $es->getElements($r, $bux->getId());
82
+    
83
+    // Maintenant on compare
84
+    $this->assertEquals($query_results, $searcher_results);
85
+    
86
+  }
87
+}

+ 30 - 0
src/Muzich/CoreBundle/lib/UnitTest.php View File

@@ -0,0 +1,30 @@
1
+<?php
2
+
3
+namespace Muzich\CoreBundle\lib;
4
+
5
+require_once(__DIR__ . "/../../../../app/AppKernel.php");
6
+
7
+class UnitTest extends \PHPUnit_Framework_TestCase
8
+{
9
+  public function __construct()
10
+  {
11
+    $kernel = new \AppKernel("test", true);
12
+    $kernel->boot();
13
+    $this->_container = $kernel->getContainer();
14
+    parent::__construct();
15
+  }
16
+
17
+  protected function get($service)
18
+  {
19
+    return $this->_container->get($service);
20
+  }
21
+  
22
+  /**
23
+   *
24
+   * @return \Symfony\Bundle\DoctrineBundle\Registry
25
+   */
26
+  protected function getDoctrine()
27
+  {
28
+    return $this->get('doctrine');
29
+  }
30
+}

+ 4 - 2
src/Muzich/HomeBundle/Controller/ShowController.php View File

@@ -21,7 +21,8 @@ class ShowController extends Controller
21 21
     $viewed_user = $this->findUserWithSlug($slug);
22 22
         
23 23
     $search_object = $this->createSearchObject(array(
24
-      'user_id'  => $viewed_user->getId()
24
+      'user_id'  => $viewed_user->getId(),
25
+      'count'    => $this->container->getParameter('search_default_count')
25 26
     ));
26 27
     
27 28
     return array(
@@ -43,7 +44,8 @@ class ShowController extends Controller
43 44
     $group = $this->findGroupWithSlug($slug);
44 45
         
45 46
     $search_object = $this->createSearchObject(array(
46
-      'group_id'  => $group->getId()
47
+      'group_id'  => $group->getId(),
48
+      'count'     => $this->container->getParameter('search_default_count')
47 49
     ));
48 50
     
49 51
     ($group->getOwner()->getId() == $this->getUserId()) ? $his = true : $his = false;