private function MultiCustomFieldsSubmissionTest::verifyCustomValues in Webform CiviCRM Integration 8.5
Verify stored values.
2 calls to MultiCustomFieldsSubmissionTest::verifyCustomValues()
- MultiCustomFieldsSubmissionTest::testContactRefSubmission in tests/
src/ FunctionalJavascript/ MultiCustomFieldsSubmissionTest.php - Submit webform with 3 contact reference fields.
- MultiCustomFieldsSubmissionTest::testSubmitWebform in tests/
src/ FunctionalJavascript/ MultiCustomFieldsSubmissionTest.php - Test submitting Custom Fields
File
- tests/
src/ FunctionalJavascript/ MultiCustomFieldsSubmissionTest.php, line 418
Class
- MultiCustomFieldsSubmissionTest
- Tests submitting a Webform with CiviCRM: single contact + custom fields.
Namespace
Drupal\Tests\webform_civicrm\FunctionalJavascriptCode
private function verifyCustomValues($params) {
$customValues = $this->utils
->wf_civicrm_api('CustomValue', 'get', [
'entity_id' => $this->rootUserCid,
])['values'];
$monthValues = $customValues[$this->_customFields['month']];
$dataValues = $customValues[$this->_customFields['data']];
$contactRefValues = $customValues[$this->_customFields['consultant']];
//Assert Household Data submission
if (!empty($this->_hh)) {
unset($monthValues['entity_id'], $monthValues['latest'], $monthValues['id']);
//Ensure 5 custom field value is created, with only 3 having the values.
$this
->assertEquals(count($monthValues), 5);
$this
->assertEquals($monthValues[1], 'Jan');
$this
->assertEquals($monthValues[2], 'Feb');
$this
->assertEquals($monthValues[3], 'March');
$this
->assertEmpty($monthValues[4]);
$this
->assertEmpty($monthValues[5]);
unset($dataValues['entity_id'], $dataValues['latest'], $dataValues['id']);
//Ensure 5 custom field value is created, with only 3 having the values.
$this
->assertEquals(count($dataValues), 5);
$this
->assertEquals($dataValues[1], 100);
$this
->assertEquals($dataValues[2], 200);
$this
->assertEquals($dataValues[3], 200);
$this
->assertEmpty($dataValues[4]);
$this
->assertEmpty($dataValues[5]);
unset($contactRefValues['entity_id'], $contactRefValues['latest'], $contactRefValues['id']);
//Ensure 5 custom field value is created, with only 3 having the values.
$this
->assertEquals(count($contactRefValues), 5);
$this
->assertEquals($contactRefValues[1], $this->rootUserCid);
$this
->assertEquals($contactRefValues[2], $this->_hh[2]['id']);
$this
->assertEquals($contactRefValues[3], $this->_hh[3]['id']);
$this
->assertEmpty($contactRefValues[4]);
$this
->assertEmpty($contactRefValues[5]);
return;
}
// Assert if submitted params are present in the custom values.
$this
->assertTrue(in_array($this->_contact1['id'], $contactRefValues));
$this
->assertTrue(in_array($this->_contact2['id'], $contactRefValues));
for ($c = 1; $c <= $this->_totalMV; $c++) {
$contact = current($this->utils
->wf_civicrm_api('Contact', 'get', [
'id' => $contactRefValues[$c],
])['values']);
//We have entered multi value fields for only first 3 contacts.
if ($c < 4) {
for ($i = 1; $i <= $this->_totalMV; $i++) {
if ($c == 2) {
$cid = $this->_contact1['id'];
$this
->assertEquals($this->_contact1["first_name"], $contact['first_name']);
$this
->assertEquals($this->_contact1["last_name"], $contact['last_name']);
}
elseif ($c == 3) {
$cid = $this->_contact2['id'];
$this
->assertEquals($this->_contact2["first_name"], $contact['first_name']);
$this
->assertEquals($this->_contact2["last_name"], $contact['last_name']);
}
$key = $i;
if (!empty($cid)) {
//Assert custom values stored on 2nd and 3rd contact.
$customValues = $this->utils
->wf_civicrm_api('CustomValue', 'get', [
'entity_id' => $cid,
])['values'];
$monthValues = $customValues[$this->_customFields['month']];
$dataValues = $customValues[$this->_customFields['data']];
unset($monthValues['entity_id'], $monthValues['latest'], $monthValues['id']);
$monthValues = array_values($monthValues);
unset($dataValues['entity_id'], $dataValues['latest'], $dataValues['id']);
$dataValues = array_values($dataValues);
$key--;
}
$this
->assertEquals($params["civicrm_{$c}_contact_{$i}_cg1_custom_1"], $monthValues[$key]);
$this
->assertEquals($params["civicrm_{$c}_contact_{$i}_cg1_custom_2"], $dataValues[$key]);
}
}
else {
$this
->assertEquals($params["civicrm_{$c}_contact_1_contact_first_name"], $contact['first_name']);
$this
->assertEquals($params["civicrm_{$c}_contact_1_contact_last_name"], $contact['last_name']);
}
}
}