Fix PHPCS problems and a better comparation of schema and data

This commit is contained in:
tranfuga25s 2014-12-05 16:01:49 -03:00
parent fc756ac0b8
commit ec2530ba58

View file

@ -287,22 +287,26 @@ class CakeTestFixture {
$fields = array_unique($fields);
$default = array_fill_keys($fields, null);
foreach ($this->records as $record) {
$merge_data = array_merge( $default, $record );
$merge = array_values( $merge_data );
$mergeData = array_merge( $default, $record );
$merge = array_values( $mergeData );
if (count($fields) !== count($merge)) {
$merge_fields = array_keys( $merge_data );
$mergeFields = array_keys( $merge_data );
$remove = array();
foreach( $fields as $f ) {
if( in_array( $f, $merge_fields ) ) {
foreach ($fields as $k => $f) {
if (in_array( $f, $mergeFields )) {
$remove[] = $f;
unset( $fields[$k] );
}
}
$merge_fields = array_diff( $merge_fields, $remove );
$mergeFields = array_diff( $mergeFields, $remove );
$message = 'Fixture invalid: Count of fields does not match count of values in ' . get_class($this)."\n";
foreach( $merge_fields as $field ) {
$message .= "The field '".$field."' is not in the fixture used in the schema."."\n";
foreach ($mergeFields as $field) {
$message .= "The field '" . $field . "' is in the data fixture but not in the schema." . "\n";
}
foreach ($fields as $field) {
$message .= "The field '" . $field . "' is in the fixture but not in the data." . "\n";
}
throw new CakeException( $message );