tests/ - Remove get_info()
[civicrm-core.git] / tests / phpunit / CRM / Member / Import / Parser / MembershipTest.php
CommitLineData
5e3757e9 1<?php
2
3/**
4 * File for the TestActivityType class
5 *
6 * (PHP 5)
7 *
8 * @package CiviCRM
9 *
10 * This file is part of CiviCRM
11 *
12 * CiviCRM is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Affero General Public License
14 * as published by the Free Software Foundation; either version 3 of
15 * the License, or (at your option) any later version.
16 *
17 * CiviCRM is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU Affero General Public License for more details.
21 *
22 * You should have received a copy of the GNU Affero General Public
23 * License along with this program. If not, see
24 * <http://www.gnu.org/licenses/>.
25 */
26
27require_once 'CiviTest/CiviUnitTestCase.php';
28require_once 'CiviTest/Contact.php';
29require_once 'CiviTest/Membership.php';
30
31/**
32 * Test CRM/Member/BAO Membership Log add , delete functions
33 *
34 * @package CiviCRM
35 */
36class CRM_Member_Import_Parser_MembershipTest extends CiviUnitTestCase {
5e3757e9 37 /**
38 * Membership type name used in test function
39 * @var String
40 */
41 protected $_membershipTypeName = NULL;
42
43 /**
44 * Membership type id used in test function
45 * @var String
46 */
47 protected $_membershipTypeID = NULL;
5e3757e9 48
49 function setUp() {
50 parent::setUp();
51
52 $params = array(
53 'contact_type_a' => 'Individual',
54 'contact_type_b' => 'Organization',
55 'name_a_b' => 'Test Employee of',
56 'name_b_a' => 'Test Employer of',
57 );
58 $this->_relationshipTypeId = $this->relationshipTypeCreate($params);
59 $this->_orgContactID = $this->organizationCreate();
e6ff1593 60 $this->_financialTypeId = 1;
5e3757e9 61 $this->_membershipTypeName = 'Mickey Mouse Club Member';
62 $params = array(
63 'name' => $this->_membershipTypeName,
64 'description' => NULL,
65 'minimum_fee' => 10,
66 'duration_unit' => 'year',
67 'member_of_contact_id' => $this->_orgContactID,
68 'period_type' => 'fixed',
69 'duration_interval' => 1,
e6ff1593 70 'financial_type_id' => $this->_financialTypeId,
5e3757e9 71 'relationship_type_id' => $this->_relationshipTypeId,
72 'visibility' => 'Public',
73 'is_active' => 1,
74 'fixed_period_start_day' => 101,
75 'fixed_period_rollover_day' => 1231
76 );
3e8ef36b 77 $ids = array();
5e3757e9 78 $membershipType = CRM_Member_BAO_MembershipType::add($params, $ids);
79 $this->_membershipTypeID = $membershipType->id;
80
81 $this->_mebershipStatusID = $this->membershipStatusCreate('test status');
82 $session = CRM_Core_Session::singleton();
83 $session->set('dateTypes', 1);
84 }
85
86 /**
87 * Tears down the fixture, for example, closes a network connection.
88 * This method is called after a test is executed.
89 *
90 */
91 function tearDown() {
92 $tablesToTruncate = array('civicrm_membership', 'civicrm_membership_log', 'civicrm_contribution', 'civicrm_membership_payment');
93 $this->quickCleanup($tablesToTruncate);
94 $this->relationshipTypeDelete($this->_relationshipTypeId);
95 $this->membershipTypeDelete(array('id' => $this->_membershipTypeID));
96 $this->membershipStatusDelete($this->_mebershipStatusID);
5e3757e9 97 $this->contactDelete($this->_orgContactID);
98 }
99
100 /**
101 * Test Import
102 */
103 function testImport() {
104 $contactId = $this->individualCreate();
105 $contact2Params = array(
106 'first_name' => 'Anthonita',
107 'middle_name' => 'J.',
108 'last_name' => 'Anderson',
109 'prefix_id' => 3,
110 'suffix_id' => 3,
111 'email' => 'b@c.com',
112 'contact_type' => 'Individual',
113 );
114 $contactId = $this->individualCreate($contact2Params);
115 $year = date('Y') - 1;
116 $startDate2 = date('Y-m-d', mktime(0, 0, 0, 9, 10, $year));
117 $params = array(
118 array(
119 'anthony_anderson@civicrm.org',
120 $this->_membershipTypeID,
121 date('Y-m-d'),
122 ),
123 array(
124 $contact2Params['email'],
125 $this->_membershipTypeName,
126 $startDate2,
127 ),
128 );
129 $fieldMapper = array(
130 'mapper[0][0]' => 'email',
131 'mapper[1][0]' => 'membership_type_id',
132 'mapper[2][0]' => 'membership_start_date',
133 );
134/*
135
136 $params = array(
137 'contact_id' => $contactId,
138 'membership_type_id' => $this->_membershipTypeID,
139 'join_date' => '2006-01-21',
140 'start_date' => '2006-01-21',
141 'end_date' => '2006-12-21',
142 'source' => 'Payment',
143 'is_override' => 1,
144 'status_id' => $this->_mebershipStatusID,
145 );
146 */
147 $importObject = new CRM_Member_Import_Parser_Membership($fieldMapper);
148 $importObject->init();
149 $importObject->_contactType = 'Individual';
150 foreach ($params as $values) {
151 $this->assertEquals(CRM_Import_Parser::VALID, $importObject->import(CRM_Import_Parser::DUPLICATE_UPDATE, $values), $values[0]);
152 }
153 $result = $this->callAPISuccess('membership', 'get', array());
154 $this->assertEquals(2, $result['count']);
155 }
156}
157