297dc9eca25b2637be42c2a0e3f75a884fc88de1
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Tests / Functional / Framework / Constraint / RequestSection / HasRecordConstraint.php
1 <?php
2 namespace TYPO3\CMS\Core\Tests\Functional\Framework\Constraint\RequestSection;
3
4 /***************************************************************
5 * Copyright notice
6 *
7 * (c) 2014 Oliver Hader <oliver.hader@typo3.org>
8 * All rights reserved
9 *
10 * This script is part of the TYPO3 project. The TYPO3 project is
11 * free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
15 *
16 * The GNU General Public License can be found at
17 * http://www.gnu.org/copyleft/gpl.html.
18 *
19 * This script is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * This copyright notice MUST APPEAR in all copies of the script!
25 ***************************************************************/
26
27 use TYPO3\CMS\Core\Tests\Functional\Framework\Frontend\ResponseSection;
28
29 /**
30 * Model of frontend response
31 */
32 class HasRecordConstraint extends AbstractRecordConstraint {
33
34 /**
35 * @param ResponseSection $responseSection
36 * @return bool
37 */
38 protected function matchesSection(ResponseSection $responseSection) {
39 $records = $responseSection->getRecords();
40
41 if (empty($records) || !is_array($records)) {
42 $this->sectionFailures[$responseSection->getIdentifier()] = 'No records found.';
43 return FALSE;
44 }
45
46 $nonMatchingValues = $this->getNonMatchingValues($records);
47
48 if (!empty($nonMatchingValues)) {
49 $this->sectionFailures[$responseSection->getIdentifier()] = 'Could not assert all values for "' . $this->table . '.' . $this->field . '": ' . implode(', ', $nonMatchingValues);
50 return FALSE;
51 }
52
53 return TRUE;
54 }
55
56 /**
57 * Returns a string representation of the constraint.
58 *
59 * @return string
60 */
61 public function toString() {
62 return 'response has records';
63 }
64
65 }