Skip to content
Snippets Groups Projects
CreateDataProcessorFieldTest.php 3.97 KiB
Newer Older
  • Learn to ignore specific revisions
  • sarvesh21's avatar
    sarvesh21 committed
    <?php
    
    use CRM_Dataprocessor_ExtensionUtil as E;
    use Civi\Test\HeadlessInterface;
    use Civi\Test\HookInterface;
    use Civi\Test\TransactionalInterface;
    
    /**
     * FIXME - Add test description.
     *
     * Tips:
     *  - With HookInterface, you may implement CiviCRM hooks directly in the test class.
     *    Simply create corresponding functions (e.g. "hook_civicrm_post(...)" or similar).
     *  - With TransactionalInterface, any data changes made by setUp() or test****() functions will
     *    rollback automatically -- as long as you don't manipulate schema or truncate tables.
     *    If this test needs to manipulate schema or truncate tables, then either:
     *       a. Do all that using setupHeadless() and Civi\Test.
     *       b. Disable TransactionalInterface, and handle all setup/teardown yourself.
     *
     * @group headless
     */
    class CRM_Myextension_MyHeadlessTest extends \PHPUnit_Framework_TestCase implements HeadlessInterface, HookInterface, TransactionalInterface {
    
      public function setUpHeadless() {
        // Civi\Test has many helpers, like install(), uninstall(), sql(), and sqlFile().
        // See: https://docs.civicrm.org/dev/en/latest/testing/phpunit/#civitest
        return \Civi\Test::headless()
          ->installMe(__DIR__)
          ->apply();
      }
    
      public function setUp() {
        parent::setUp();
      }
    
      public function tearDown() {
        parent::tearDown();
      }
    
      public function testCreateDataProcessorField() {
    
      		$params['name'] = "test";
    	    $params['title'] = "title";
    	    $params['description'] = 'Creating a Test Description';
    	    $params['is_active'] = 1;
    
    	    // Creating a DataProcessor
    	    civicrm_api3('DataProcessor', 'create', $params);
    
    	    // Retrieving the data processor
          $result = civicrm_api3('DataProcessor', 'get');
    
          if(isset($result['id'])){
          // Retrieving the id of data processor
            $data_processor_id = $result['id'];
            $factory = dataprocessor_get_factory();
            $data_sources = $factory->getDataSources();
    
            $params = [];
                // Params for setting data source parameters
    
            $params['data_processor_id'] = $data_processor_id;
            $params['title'] = 'testDataSource';
            $params['type'] = 'contact';
    
            // Creating a DataProcessor Source
            civicrm_api3('DataProcessorSource', 'create', $params);
    
            $result_datasource = civicrm_api3('DataProcessorSource', 'get');
    
            if(isset($result_datasource['id'])){
    
              $id_datasource = $result_datasource['id'];
    
              $params = [];
                  // Params for setting data source parameters
    
              $params['data_processor_id'] = $data_processor_id;
              $params['title'] = 'testDataField';
              $params['type'] = 'raw';
              $params['configuration'] = array("field" => "id","datasource" =>"contact");
    
              civicrm_api3('DataProcessorField', 'create', $params);
    
              $result_field = civicrm_api3('DataProcessorField', 'get');
    
              if(isset($result_field['id'])){          
    
                  $id_datafield = $result_field['id'];
    
                  $this->assertEquals('testDataField', $result_field['values'][$id_datafield]['title']);
                  $this->assertEquals('raw', $result_field['values'][$id_datafield]['type']);
                  $this->assertEquals($data_processor_id, $result_field['values'][$id_datafield]['data_processor_id']);
                  $this->assertEquals('id', $result_field['values'][$id_datafield]['configuration']['field']);
                  $this->assertEquals('contact', $result_field['values'][$id_datafield]['configuration']['datasource']);
    
              } 
              else{
                echo "Failed to add DataProcessor Field";
                $this->assertFalse(true);                  
              }
    
    
            }
            else{
    
              echo "Failed to add DataProcessorSource";
              $this->assertFalse(true);      
            }
          }
          else{
            echo "DataProcessor Failed to Setup";
            $this->assertFalse(true);    
          }
    
          // $factory = dataprocessor_get_factory();
          // $data_sources = $factory->getDataSources();
          
    
      }
    
    
    }