From 927f93e271f71b9404057021c8f5ca0ef92c94d5 Mon Sep 17 00:00:00 2001 From: Tim Mallezie Date: Mon, 29 Jun 2015 12:36:32 +0200 Subject: [PATCH] Add Mapping and mappingfield API --- api/v3/Mapping.php | 69 ++++++++++++++++ api/v3/MappingField.php | 81 ++++++++++++++++++ tests/phpunit/CiviTest/CiviUnitTestCase.php | 37 +++++++++ tests/phpunit/api/v3/MappingFieldTest.php | 92 +++++++++++++++++++++ tests/phpunit/api/v3/MappingTest.php | 90 ++++++++++++++++++++ 5 files changed, 369 insertions(+) create mode 100644 api/v3/Mapping.php create mode 100644 api/v3/MappingField.php create mode 100644 tests/phpunit/api/v3/MappingFieldTest.php create mode 100644 tests/phpunit/api/v3/MappingTest.php diff --git a/api/v3/Mapping.php b/api/v3/Mapping.php new file mode 100644 index 0000000000..bce8eaa498 --- /dev/null +++ b/api/v3/Mapping.php @@ -0,0 +1,69 @@ +delete(); } + /** + * Add a Mapping. + * + * @param array $params + * @return CRM_Core_DAO_Mapping + * Mapping id of created mapping + */ + public function mappingCreate($params = NULL) { + if ($params === NULL) { + $params = array( + 'name' => 'Mapping name', + 'description' => 'Mapping description', + // 'Export Contact' mapping. + 'mapping_type_id' => 7, + ); + } + + $mapping = new CRM_Core_DAO_Mapping(); + $mapping->copyValues($params); + $mapping->save(); + // clear getfields cache + CRM_Core_PseudoConstant::flush(); + $this->callAPISuccess('mapping', 'getfields', array('version' => 3, 'cache_clear' => 1)); + return $mapping; + } + + /** + * Delete a Mapping + * + * @param int $mappingId + */ + public function mappingDelete($mappingId) { + $mapping = new CRM_Core_DAO_Mapping(); + $mapping->id = $mappingId; + $mapping->delete(); + } + /** * Add a Group. * diff --git a/tests/phpunit/api/v3/MappingFieldTest.php b/tests/phpunit/api/v3/MappingFieldTest.php new file mode 100644 index 0000000000..b8adf50284 --- /dev/null +++ b/tests/phpunit/api/v3/MappingFieldTest.php @@ -0,0 +1,92 @@ +useTransaction(TRUE); + + $this->_entity = 'mapping_field'; + $this->_mappingID = $this->mappingCreate(); + $this->params = array( + 'mapping_id' => $this->_mappingID, + 'name' => 'last_name', + 'contact_type' => 'Individual', + 'column_number' => 2, + 'grouping' => 1, + ); + } + + public function testCreateMappingField() { + $result = $this->callAPIAndDocument($this->_entity, 'create', $this->params, __FUNCTION__, __FILE__); + $this->assertEquals(1, $result['count']); + $this->getAndCheck($this->params, $result['id'], $this->_entity); + $this->assertNotNull($result['values'][$result['id']]['id']); + } + + public function testGetMappingField() { + $result = $this->callAPISuccess($this->_entity, 'create', $this->params); + $result = $this->callAPIAndDocument($this->_entity, 'get', $this->params, __FUNCTION__, __FILE__); + $this->assertEquals(1, $result['count']); + $this->assertNotNull($result['values'][$result['id']]['id']); + $this->callAPISuccess($this->_entity, 'delete', array('id' => $result['id'])); + } + + public function testDeleteMappingField() { + $result = $this->callAPISuccess($this->_entity, 'create', $this->params); + $deleteParams = array('id' => $result['id']); + $result = $this->callAPIAndDocument($this->_entity, 'delete', $deleteParams, __FUNCTION__, __FILE__); + $checkDeleted = $this->callAPISuccess($this->_entity, 'get', array()); + $this->assertEquals(0, $checkDeleted['count']); + } + + public function testDeleteMappingFieldInvalid() { + $result = $this->callAPISuccess($this->_entity, 'create', $this->params); + $deleteParams = array('id' => 600); + $result = $this->callAPIFailure($this->_entity, 'delete', $deleteParams); + $checkDeleted = $this->callAPISuccess($this->_entity, 'get', array()); + $this->assertEquals(1, $checkDeleted['count']); + } + +} diff --git a/tests/phpunit/api/v3/MappingTest.php b/tests/phpunit/api/v3/MappingTest.php new file mode 100644 index 0000000000..f1865fb070 --- /dev/null +++ b/tests/phpunit/api/v3/MappingTest.php @@ -0,0 +1,90 @@ +useTransaction(TRUE); + + $this->_entity = 'mapping'; + $this->params = array( + 'name' => 'Mapping name', + 'description' => 'Mapping description', + // 'Export Contact' mapping. + 'mapping_type_id' => 7, + ); + } + + public function testCreateMapping() { + $result = $this->callAPIAndDocument($this->_entity, 'create', $this->params, __FUNCTION__, __FILE__); + $this->assertEquals(1, $result['count']); + $this->getAndCheck($this->params, $result['id'], $this->_entity); + $this->assertNotNull($result['values'][$result['id']]['id']); + } + + public function testGetMapping() { + $result = $this->callAPISuccess($this->_entity, 'create', $this->params); + $result = $this->callAPIAndDocument($this->_entity, 'get', $this->params, __FUNCTION__, __FILE__); + $this->assertEquals(1, $result['count']); + $this->assertNotNull($result['values'][$result['id']]['id']); + $this->callAPISuccess($this->_entity, 'delete', array('id' => $result['id'])); + } + + public function testDeleteMapping() { + $result = $this->callAPISuccess($this->_entity, 'create', $this->params); + $deleteParams = array('id' => $result['id']); + $result = $this->callAPIAndDocument($this->_entity, 'delete', $deleteParams, __FUNCTION__, __FILE__); + $checkDeleted = $this->callAPISuccess($this->_entity, 'get', array()); + $this->assertEquals(0, $checkDeleted['count']); + } + + public function testDeleteMappingInvalid() { + $result = $this->callAPISuccess($this->_entity, 'create', $this->params); + $deleteParams = array('id' => 600); + $result = $this->callAPIFailure($this->_entity, 'delete', $deleteParams); + $checkDeleted = $this->callAPISuccess($this->_entity, 'get', array()); + $this->assertEquals(1, $checkDeleted['count']); + } + +} -- 2.25.1