diff --git a/api/v3/MembershipType.php b/api/v3/MembershipType.php index 5011383c6897..82de053cfbd6 100644 --- a/api/v3/MembershipType.php +++ b/api/v3/MembershipType.php @@ -59,8 +59,7 @@ function civicrm_api3_membership_type_create($params) { * Array of parameters determined by getfields. */ function _civicrm_api3_membership_type_create_spec(&$params) { - // todo could set default here probably - $params['domain_id']['api.required'] = 1; + $params['domain_id']['api.default'] = CRM_Core_Config::domainID(); $params['member_of_contact_id']['api.required'] = 1; $params['financial_type_id']['api.required'] = 1; $params['name']['api.required'] = 1; diff --git a/tests/phpunit/api/v3/MembershipTypeTest.php b/tests/phpunit/api/v3/MembershipTypeTest.php index af809934e5dd..1fa73d53a0b3 100644 --- a/tests/phpunit/api/v3/MembershipTypeTest.php +++ b/tests/phpunit/api/v3/MembershipTypeTest.php @@ -126,9 +126,9 @@ public function testCreate() { } /** - * Test update fails with no ID. + * Domain ID can be intuited.. */ - public function testUpdateWithoutId() { + public function testCreateWithoutDomainId() { $params = array( 'name' => '60+ Membership', 'description' => 'people above 60 are given health instructions', @@ -141,8 +141,18 @@ public function testUpdateWithoutId() { 'visibility' => 'public', ); - $membershipType = $this->callAPIFailure('membership_type', 'create', $params); - $this->assertEquals($membershipType['error_message'], 'Mandatory key(s) missing from params array: domain_id'); + $membershipType = $this->callAPISuccess('membership_type', 'create', $params); + $domainID = $this->callAPISuccessGetValue('MembershipType', ['return' => 'domain_id', 'id' => $membershipType['id']]); + $this->assertEquals(CRM_Core_Config::domainID(), $domainID); + + $this->callAPISuccess('membership_type', 'create', ['domain_id' => 2, 'id' => $membershipType['id']]); + $domainID = $this->callAPISuccessGetValue('MembershipType', ['return' => 'domain_id', 'id' => $membershipType['id']]); + $this->assertEquals(2, $domainID); + + $this->callAPISuccess('membership_type', 'create', ['id' => $membershipType['id'], 'description' => 'Cool member']); + $domainID = $this->callAPISuccessGetValue('MembershipType', ['return' => 'domain_id', 'id' => $membershipType['id']]); + $this->assertEquals(2, $domainID); + } /**