INFRA-132 - tests/ - PHPStorm cleanup
[civicrm-core.git] / tests / phpunit / CRM / Mailing / BAO / QueryTestDataProvider.php
1 <?php
2
3 /**
4 * Provide data to the CRM_Mailing_BAO_QueryTest class
5 *
6 * @package CiviCRM
7 */
8 class CRM_Mailing_BAO_QueryTestDataProvider implements Iterator {
9
10 /**
11 * @var integer
12 */
13 private $i = 0;
14
15 /**
16 * @var mixed[]
17 * This dataset describes various form values and what contact
18 * IDs should be selected when the form values are applied to the
19 * database in dataset.xml
20 */
21 private $dataset = array(
22 array(
23 'fv' => array('mailing_name' => 'First%', 'mailing_open_status' => 'Y'),
24 'id' => array(109, 110, 111, 112),
25 ),
26 array(
27 'fv' => array('mailing_name' => 'First%', 'mailing_open_status' => 'N'),
28 'id' => array(102, 103, 104, 105, 108),
29 ),
30 /*bounce*/
31 array(
32 'fv' => array(
33 'mailing_name' => 'First%',
34 'mailing_delivery_status'
35 => 'N'
36 ),
37 'id' => array(105),
38 ),
39 /*bounce*/
40 array(
41 'fv' => array(
42 'mailing_name' => 'First%',
43 'mailing_delivery_status'
44 => 'Y'
45 ),
46 'id' => array(102, 103, 104, 108, 109, 110, 111, 112),
47 ),
48 array(
49 'fv' => array('mailing_name' => 'First%', 'mailing_reply_status' => 'Y'),
50 'id' => array(103, 108, 110, 112),
51 ),
52 array(
53 'fv' => array('mailing_name' => 'First%', 'mailing_reply_status' => 'N'),
54 'id' => array(102, 104, 105, 109, 111),
55 ),
56 array(
57 'fv' => array('mailing_name' => 'First%', 'mailing_click_status' => 'Y'),
58 'id' => array(104, 108, 111, 112),
59 ),
60 array(
61 'fv' => array('mailing_name' => 'First%', 'mailing_click_status' => 'N'),
62 'id' => array(102, 103, 105, 109, 110),
63 ),
64 /*bounce*/
65 array(
66 'fv' => array(
67 'mailing_name' => 'Second%',
68 'mailing_delivery_status'
69 => 'N'
70 ),
71 'id' => array(),
72 ),
73 /*bounce*/
74 array(
75 'fv' => array(
76 'mailing_name' => 'Second%',
77 'mailing_delivery_status'
78 => 'Y'
79 ),
80 'id' => array(102, 103, 104, 108, 109, 110, 111, 112),
81 ),
82 array(
83 'fv' => array('mailing_name' => 'Second%', 'mailing_reply_status' => 'Y'),
84 'id' => array(103),
85 ),
86 array(
87 'fv' => array('mailing_name' => 'Second%', 'mailing_click_status' => 'Y'),
88 'id' => array(104),
89 ),
90 array(
91 'fv' => array('mailing_name' => 'Second%', 'mailing_click_status' => 'N'),
92 'id' => array(102, 103, 108, 109, 110, 111, 112),
93 ),
94 array(
95 'fv' => array('mailing_date_high' => '2011-05-25', 'mailing_open_status' => 'Y'),
96 'id' => array(109, 110, 111, 112),
97 ),
98 array(
99 'fv' => array('mailing_date_high' => '2011-05-25', 'mailing_open_status' => 'N'),
100 'id' => array(102, 103, 104, 105, 108),
101 ),
102 array(
103 'fv' => array('mailing_date_low' => '2011-05-26', 'mailing_open_status' => 'Y'),
104 'id' => array(102),
105 ),
106 array(
107 'fv' => array('mailing_date_low' => '2011-05-26', 'mailing_open_status' => 'N'),
108 'id' => array(103, 104, 108, 109, 110, 111, 112),
109 ),
110 );
111
112 public function _construct() {
113 $this->i = 0;
114 }
115
116 public function rewind() {
117 $this->i = 0;
118 }
119
120 /**
121 * @return array
122 */
123 public function current() {
124 $count = count($this->dataset[$this->i]['id']);
125 $ids = $this->dataset[$this->i]['id'];
126 $full = array();
127 foreach ($this->dataset[$this->i]['id'] as $key => $value) {
128 $full[] = array(
129 'contact_id' => $value,
130 'contact_type' => 'Individual',
131 'sort_name' => "Test Contact $value",
132 );
133 }
134 return array($this->dataset[$this->i]['fv'], $count, $ids, $full);
135 }
136
137 /**
138 * @return int
139 */
140 public function key() {
141 return $this->i;
142 }
143
144 public function next() {
145 $this->i++;
146 }
147
148 /**
149 * @return bool
150 */
151 public function valid() {
152 return isset($this->dataset[$this->i]);
153 }
154 }