/**
  * @param ResponseSection $responseSection
  * @return bool
  */
 protected function matchesSection(ResponseSection $responseSection)
 {
     $records = $responseSection->getRecords();
     if (empty($records) || !is_array($records)) {
         $this->sectionFailures[$responseSection->getIdentifier()] = 'No records found.';
         return FALSE;
     }
     $nonMatchingValues = $this->getNonMatchingValues($records);
     if (!empty($nonMatchingValues)) {
         $this->sectionFailures[$responseSection->getIdentifier()] = 'Could not assert all values for "' . $this->table . '.' . $this->field . '": ' . implode(', ', $nonMatchingValues);
         return FALSE;
     }
     return TRUE;
 }
 /**
  * @param ResponseSection $responseSection
  * @return bool
  */
 protected function matchesSection(ResponseSection $responseSection)
 {
     $records = $responseSection->getRecords();
     if (empty($records) || !is_array($records)) {
         $this->sectionFailures[$responseSection->getIdentifier()] = 'No records found.';
         return false;
     }
     $nonMatchingValues = $this->getNonMatchingValues($records);
     $matchingValues = array_diff($this->values, $nonMatchingValues);
     if (!empty($matchingValues)) {
         $this->sectionFailures[$responseSection->getIdentifier()] = 'Could not assert not having values for "' . $this->table . '.' . $this->field . '": ' . implode(', ', $matchingValues);
         return false;
     }
     return true;
 }
 /**
  * @param ResponseSection $responseSection
  * @return bool
  */
 protected function matchesSection(ResponseSection $responseSection)
 {
     $nonMatchingVariants = array();
     $remainingRecordVariants = array();
     foreach ($responseSection->findStructures($this->recordIdentifier, $this->recordField) as $path => $structure) {
         if (empty($structure) || !is_array($structure)) {
             $this->sectionFailures[$responseSection->getIdentifier()] = 'No records found in "' . $path . '"';
             return false;
         }
         $remainingRecords = array();
         $nonMatchingValues = $this->getNonMatchingValues($structure);
         if ($this->strict) {
             $remainingRecords = $this->getRemainingRecords($structure);
         }
         if (empty($nonMatchingValues) && (!$this->strict || empty($remainingRecords))) {
             return true;
         }
         if (!empty($nonMatchingValues)) {
             $nonMatchingVariants[$path] = $nonMatchingValues;
         }
         if ($this->strict && !empty($remainingRecords)) {
             $remainingRecordVariants[$path] = $remainingRecords;
         }
     }
     $failureMessage = '';
     if (!empty($nonMatchingVariants)) {
         $failureMessage .= 'Could not assert all values for "' . $this->table . '.' . $this->field . '"' . LF;
         foreach ($nonMatchingVariants as $path => $nonMatchingValues) {
             $failureMessage .= '  * Not found in "' . $path . '": ' . implode(', ', $nonMatchingValues) . LF;
         }
     }
     if (!empty($remainingRecordVariants)) {
         $failureMessage .= 'Found remaining records for "' . $this->table . '.' . $this->field . '"' . LF;
         foreach ($remainingRecordVariants as $path => $remainingRecords) {
             $failureMessage .= '  * Found in "' . $path . '": ' . implode(', ', array_keys($remainingRecords)) . LF;
         }
     }
     $this->sectionFailures[$responseSection->getIdentifier()] = $failureMessage;
     return false;
 }
 /**
  * @param ResponseSection $responseSection
  * @return bool
  */
 protected function matchesSection(ResponseSection $responseSection)
 {
     $matchingVariants = array();
     foreach ($responseSection->findStructures($this->recordIdentifier, $this->recordField) as $path => $structure) {
         if (empty($structure) || !is_array($structure)) {
             $this->sectionFailures[$responseSection->getIdentifier()] = 'No records found in "' . $path . '"';
             return FALSE;
         }
         $nonMatchingValues = $this->getNonMatchingValues($structure);
         $matchingValues = array_diff($this->values, $nonMatchingValues);
         if (!empty($matchingValues)) {
             $matchingVariants[$path] = $matchingValues;
         }
     }
     if (empty($matchingVariants)) {
         return TRUE;
     }
     $matchingMessage = '';
     foreach ($matchingVariants as $path => $matchingValues) {
         $matchingMessage .= '  * Found in "' . $path . '": ' . implode(', ', $matchingValues);
     }
     $this->sectionFailures[$responseSection->getIdentifier()] = 'Could not assert not having values for "' . $this->table . '.' . $this->field . '"' . LF . $matchingMessage;
     return FALSE;
 }