Fixed event type id fetch
authorPradeep Nayak <pradpnayak@gmail.com>
Fri, 14 Jun 2019 16:50:30 +0000 (17:50 +0100)
committerPradeep Nayak <pradpnayak@gmail.com>
Sun, 7 Jul 2019 10:40:29 +0000 (11:40 +0100)
Added unit test

CRM/Event/BAO/Query.php
tests/phpunit/CRM/Event/BAO/QueryTest.php

index 45cfa1a22630c536e1f2bb58f0965324e03a9ab7..beb5f96e33c590d96514c465dcb7b018b709dfc6 100644 (file)
@@ -126,10 +126,10 @@ class CRM_Event_BAO_Query extends CRM_Core_BAO_Query {
       }
 
       if (!empty($query->_returnProperties['event_type_id'])) {
-        $query->_select['event_type_id'] = "event_type.id as event_type_id";
+        $query->_select['event_type_id'] = "civicrm_event.event_type_id as event_type_id";
         $query->_element['event_type_id'] = 1;
-        $query->_tables['event_type'] = 1;
-        $query->_whereTables['event_type'] = 1;
+        $query->_tables['civicrm_event'] = 1;
+        $query->_whereTables['civicrm_event'] = 1;
       }
 
       //add status_id
index efa9bb555445ddeb732848a806495fdad6d07273..cc7e757616e4533e9af99981e729406814b724f4 100644 (file)
@@ -39,4 +39,50 @@ class CRM_Event_BAO_QueryTest extends CiviUnitTestCase {
     $this->assertEquals(1, $result->N);
   }
 
+  /**
+   * Unit test to check if participant search retrieves correct event type id.
+   *
+   */
+  public function testEventType() {
+    $event = $this->eventCreate();
+    $contactId = $this->individualCreate([
+      'api.participant.create' => [
+        'event_id' => $event['id'],
+      ],
+    ]);
+    $params = [
+      [
+        0 => 'event_id',
+        1 => '=',
+        2 => $event['id'],
+        3 => 1,
+        4 => 0,
+      ],
+    ];
+
+    $returnProperties = [
+      'event_type_id' => 1,
+      'contact_id' => 1,
+      'event_id' => 1,
+    ];
+
+    $query = new CRM_Contact_BAO_Query(
+      $params, $returnProperties, NULL,
+      FALSE, FALSE, CRM_Contact_BAO_Query::MODE_EVENT
+    );
+    $sql = $query->query(FALSE);
+    $result = CRM_Core_DAO::executeQuery(implode(' ', $sql));
+
+    $this->assertEquals(1, $result->N);
+    $result->fetch();
+
+    $this->assertEquals($contactId, $result->contact_id);
+    $this->assertEquals($event['id'], $result->event_id);
+    $eventTypeId = $this->callAPISuccessGetValue('Event', [
+      'id' => $event['id'],
+      'return' => 'event_type_id',
+    ]);
+    $this->assertEquals($eventTypeId, $result->event_type_id);
+  }
+
 }